1

Продолжайте получать синтаксическую ошибку или пропущенную ошибку ')'. Просто хочу скопировать из одной рабочей книги в другую. Можете ли вы сделать диапазон с этой формулой ("A27:DE10000")? или мне нужно сделать тусклый и т.д. тип формулы?

Sub CopyData()

Workbooks(“COPYFROM.xlsx”).Worksheets(“ANALYSIS”).Range(“A27:DE10000”).Copy
Workbooks(“COPYTO.xlsx”).Worksheets(“ANALYSIS”).Range(“A27:DE10000”)

End Sub

1 ответ1

1

Синтаксическая ошибка может быть вызвана отсутствующим символом продолжения строки (" _")

Ваш 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .