2015-09-24 66 views
0

我有一个工作表Sheet1从数据复制在Workbook1到Sheet2中Workbook2代码:工作簿之间复制数据

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关闭数据。如果我通过打开文件从workbook2运行此代码,则结果将不会复制到此工作簿。

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

+0

请在应用任何和[应该在标题中使用标签吗?](http://meta.stackexchange.com/help/tagging)之前阅读标签使用指南。 – pnuts

回答

0

在实际设置workbook2作为活动工作簿的帮助。

Set y = Application.ActiveWorkbook 
0

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

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

使用

set x = workbooks("Workbook1.xlsx")

+0

感谢您的回复。我做了你所建议的改变,并且抛出一个错误'下标超出范围' – kris

+0

道歉,我在我的答案中解决了错误 –

相关问题