简体   繁体   English

在工作簿之间复制数据

[英]Copy data between workbooks

I have code that copies data from Sheet1 in Workbook1 to Sheet2 in Workbook2: 我有将数据从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

This code works fine and copies the data only if workbook2 is closed. 此代码可以正常工作,并且仅在关闭workbook2时才复制数据。 If I run this code from workbook2 by opening the file, the results won't be copied to this workbook. 如果我通过打开文件从workbook2运行此代码,则结果将不会复制到此工作簿中。

Can't we copy results to the opened workbook? 我们不能将结果复制到打开的工作簿中吗?

You can do so if the workbooks are opened in the same application shell. 如果在同一应用程序外壳中打开工作簿,则可以这样做。 instead of 代替

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

use 采用

set x = workbooks("Workbook1.xlsx")

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

 Set y = Application.ActiveWorkbook

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM