Erro de VBA do Excel - célula (R, C).

0

Estou escrevendo código no Workbook0.Worksheet1 para copiar uma célula do Workbook1.WorkSheet1 para uma célula no Workbook2.Worksheet1

Aqui está o código:

Sub CopyInfo()  
    Dim WSCopy As Worksheet  
    Dim WSPaste As Worksheet  
    Set WSCopy = Workbooks(Cells(3, 4).Value).Worksheets("Sheet1")  
    Set WSPaste = Workbooks(Cells(4, 4).Value).Worksheets("Sheet1")  
    RowCopy = Range(Cells(11, 3)).Row  
    ColCopy = Range(Cells(11, 3)).Column  
    RowPaste = Range(Cells(11, 4)).Row  
    ColPaste = Range(Cells(11, 4)).Column  
    Data = "Data"  
    While Data <> ""  
        Data = WSCopy.Cells(RowCopy, ColCopy)  
        WSPaste.Cells(RowPaste, ColPaste) = Data  
        RowCopy = RowCopy + 1  
        ColCopy = ColCopy  
        RowPaste = RowPatse  
        ColPaste = ColPaste + 1  
    Wend  
End Sub

Funciona bem na primeira iteração, na segunda iteração envia um erro.

Espero que alguém me mostre onde está o meu erro.

Dexter
fonte
Qual linha está causando um erro?
Joel Taylor
Você pode percorrer o código para confirmar que todos os valores são o que você espera? Acho que você tem uma referência nula ou similar.
Dave

Respostas:

3

Suponho que o problema seja causado por um erro de digitação no seu código nesta linha:

RowPaste = RowPatse

Como o VBA não exige que você declare suas variáveis, ele está atribuindo RowPasteo valor de uma nova variante vazia RowPatse. Portanto, o código quebra pela segunda vez.

Para evitar esse tipo de problema de digitação, você pode adicionar Option Explicità parte superior do seu módulo. Isso fará com que o compilador gere um erro sempre que uma variável não declarada for chamada no seu código.

Esta questão de lado, as linhas

ColCopy = ColCopy
RowPaste = RowPaste

podem ser removidos porque não estão fazendo absolutamente nada.

Excellll
fonte