在工作簿之间复制数据

Copy data between workbooks

我有将数据从 Workbook1 中的 Sheet1 复制到 Workbook2 中的 Sheet2 的代码:

Sub Copydata()
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Dim x As Workbook
Dim y As Workbook

Set x = Workbooks.Open("C:\Users\User1\Documents\Workbook1.xlsx")
Set y = Workbooks.Open("C:\Users\User1\Documents\Workbook2.xlsx")
With x.Sheets("Sheet1").UsedRange
    'Now, paste to y worksheet:
    y.Sheets("Sheet2").Range("A1").Resize( _
        .Rows.Count, .Columns.Count) = .Value
End With
x.Close
y.Close SaveChanges:=True
End Sub

此代码工作正常,仅当工作簿 2 关闭时才复制数据。如果我通过打开文件 运行 来自 workbook2 的代码,结果将不会复制到此工作簿。

我们不能将结果复制到打开的工作簿吗?

如果工作簿在同一个应用程序中打开,您可以这样做 shell。而不是

set x = workbooks.open("C:\Users\User1\Documents\Workbook1.xlsx")

使用

set x = workbooks("Workbook1.xlsx")

实际上将工作簿 2 设置为活动工作簿很有帮助。

 Set y = Application.ActiveWorkbook