在工作簿之间复制数据
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
我有将数据从 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