Синтаксическая ошибка может быть вызвана отсутствующим символом продолжения строки (" _"
)
Ваш Sub
содержит 2 отдельные строки (разделенные переводом каретки?), Когда они должны быть в 1 строке
И, возможно, кавычки: “ANALYSIS”
против "ANALYSIS"
,
Существуют разные способы (и синтаксис) для методов копирования / вставки:
1. - На той же строке:
Sheet1.Range("A1").Copy Destination:=Sheet2.Range("A1")
'Or
Sheet1.Range("A1").Copy Sheet2.Range("A1") 'Without using the named parameter
2. - На двух отдельных строках - Worksheet.Paste
(не метод Range):
Sheet1.Range("A1").Copy
Sheet2.Paste Destination:=Sheet2.Range("A1") '.Paste method belongs to Worksheet
3. - На двух отдельных линиях - Range.PasteSpecial
:
Sheet1.Range("A1").Copy
Sheet2.Range("A1").PasteSpecial Paste:=xlPasteAll '.PasteSpecial belongs to a Range Object
,
Ваш синтаксис использует версию 1
Чтобы исправить ошибку, и при этом иметь возможность видеть обе строки на экране без горизонтальной прокрутки:
Option Explicit
Public Sub CopyData()
Workbooks("COPYFROM.xlsx").Worksheets("ANALYSIS").Range("A27:DE10000").Copy _
Workbooks("COPYTO.xlsx").Worksheets("ANALYSIS").Range("A27:DE10000")
End Sub
Или же
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