Utilizando o código que você elaborou não era para dar erro, mas somente gravar as informações da linha 16 da aba "Home" na última linha vazia da aba "Dados".
Eu realizaria de uma forma diferente da sua, segue o código:
Sub exemplo()
Dim Home As Worksheet, Dados As Worksheet
Dim ulD As Double
Set Home = Sheets("Home")
Set Dados = Sheets("Dados")
For x = 12 To 16 Step 2
ulD = Dados.Cells(Rows.Count, 2).End(xlUp).Row
Dados.Cells(ulD + 1, 2) = Home.Cells(x, 2).Value
Dados.Cells(ulD + 1, 4) = Home.Cells(x, 4).Value
Dados.Cells(ulD + 1, 9) = Home.Cells(x, 9).Value
Dados.Cells(ulD + 1, 13) = Home.Cells(x, 13).Value
Dados.Cells(ulD + 1, 14) = Home.Cells(x, 14).Value
Dados.Cells(ulD + 1, 16) = Home.Cells(x, 16).Value
Dados.Cells(ulD + 1, 18) = Home.Cells(x, 18).Value
Dados.Cells(ulD + 1, 19) = Home.Cells(x, 19).Value
Home.Cells(x, 2).Value = Empty
Home.Cells(x, 4).Value = Empty
Home.Cells(x, 9).Value = Empty
Home.Cells(x, 13).Value = Empty
Home.Cells(x, 14).Value = Empty
Home.Cells(x, 16).Value = Empty
Home.Cells(x, 18).Value = Empty
Home.Cells(x, 19).Value = Empty
Next x
End Sub
Caso queira adicionar mais linhas basta aumentar o valor de 16 para 18,20,22,24 e etc. nesta linha de código:
"For x = 12 To 16 Step 2"
Obs: Esta macro pula 1 linha então caso queira dados das linhas ímpares seria necessário modificar a macro.
Postado : 30/10/2019 9:34 am