在工作簿之间复制数据

时间:2015-09-24 20:49:12

标签: excel vba excel-vba copy

我有代码将数据从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运行此代码,结果将不会被复制到此工作簿。

我们无法将结果复制到已打开的工作簿吗?

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