Mac Excel VBA 将工作簿复制/粘贴到工作簿

Mac Excel VBA 将工作簿复制/粘贴到工作簿

一直出现语法错误或缺少“)”错误。只想从一个工作簿复制到另一个工作簿。您可以使用此公式(“A27:DE10000”)来计算范围吗?或者我需要执行 dim 等类型的公式吗?

Sub CopyData()

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

End Sub

答案1

语法错误可能是由于缺少行继续符 ( " _")引起的

您的Sub代码包含 2 条不同的行(以回车符分隔?),而它们应该在一行上

也可能是引号:“ANALYSIS”vs"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

相关内容