我有代码将数据从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
此代码工作正常,仅在workbook2关闭时才复制数据。如果我通过打开文件从工作簿2运行此代码,结果将不会被复制到此工作簿。
我们无法将结果复制到已打开的工作簿吗?
答案 0 :(得分:0)
如果在同一个应用程序shell中打开工作簿,则可以这样做。而不是
set x = workbooks.open("C:\Users\User1\Documents\Workbook1.xlsx")
使用
set x = workbooks("Workbook1.xlsx")
答案 1 :(得分:0)
实际上将workbook2设置为活动工作簿有帮助。
Set y = Application.ActiveWorkbook