Em suma, há algo errado com a linha
Sheets("Sheet2").Range(Cells(b, 1), Cells(b, 7)).Copy Sheets("Sheet1").Cells(a, 6)
altere-o para abaixo para corrigir seu problema.
Sheets("Sheet2").Range(Sheets("Sheet2").Cells(b, 1), Sheets("Sheet2").Cells(b, 7)).Copy Sheets("Sheet1").Cells(a, 6)
Como depurei:
Quando seu código for executado, clique em "Depurar" quando o erro de tempo de execução 1004 aparecer. A quarta linha é destacada em amarelo (ou seja, o VBA encontra um erro ao executar essa linha). Então é aí que começamos.
Para eliminar o problema, podemos mover o cursor sobre várias variáveis para ver seu valor. b
= 7, a
= 8, parece bem.
Removendo os parâmetros para a função Copy
, deixando apenas tudo antes do .Copy
... o problema ainda está lá. Então deve haver algo errado com
Sheets("Sheet2").Range(Cells(b, 1), Cells(b, 7)).Copy
Olhando para ajuda no .Range
e observe que você precisa especificar o Sheet
também. E o problema está resolvido.