O erro de sintaxe pode ser causado por um caractere de continuação de linha ausente ( " _"
)
Seu Sub
contém duas linhas distintas (separadas por retorno de carro?), quando elas devem estar em uma linha
E, possivelmente, aspas: “ANALYSIS”
vs "ANALYSIS"
.
Existem diferentes formas (e sintaxe) para os métodos Copiar / Colar:
1. - Na mesma linha:
Sheet1.Range("A1").Copy Destination:=Sheet2.Range("A1")
'Or
Sheet1.Range("A1").Copy Sheet2.Range("A1") 'Without using the named parameter
2. - Em duas linhas separadas - Worksheet.Paste
(não um método de intervalo):
Sheet1.Range("A1").Copy
Sheet2.Paste Destination:=Sheet2.Range("A1") '.Paste method belongs to Worksheet
3. - Em duas linhas separadas - Range.PasteSpecial
:
Sheet1.Range("A1").Copy
Sheet2.Range("A1").PasteSpecial Paste:=xlPasteAll '.PasteSpecial belongs to a Range Object
.
Sua sintaxe está usando a versão 1
Para corrigir o erro e ainda conseguir ver as duas linhas na tela, sem rolar horizontalmente:
Option Explicit
Public Sub CopyData()
Workbooks("COPYFROM.xlsx").Worksheets("ANALYSIS").Range("A27:DE10000").Copy _
Workbooks("COPYTO.xlsx").Worksheets("ANALYSIS").Range("A27:DE10000")
End Sub
Ou
Public Sub CopyData()
Dim wsSource As Worksheet
Dim wsTarget As Worksheet
Set wsSource = Workbooks("COPYFROM.xlsx").Worksheets("ANALYSIS")
Set wsTarget = Workbooks("COPYTO.xlsx").Worksheets("ANALYSIS")
wsSource.Range("A27:DE10000").Copy Destination:=wsTarget.Range("A27:DE10000")
End Sub