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.
microsoft-excel
vba
Dexter
fonte
fonte
Respostas:
Suponho que o problema seja causado por um erro de digitação no seu código nesta linha:
Como o VBA não exige que você declare suas variáveis, ele está atribuindo
RowPaste
o valor de uma nova variante vaziaRowPatse
. 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
podem ser removidos porque não estão fazendo absolutamente nada.
fonte