【发布时间】:2019-12-01 01:43:06
【问题描述】:
我需要使用 VBA 将数据从已关闭的工作簿中复制到主工作簿中,而无需打开它们。
我在 4-6 个文件中使用 Workbooks.Open。每个需要打开的文件都会大大减慢复制操作。
我需要高效的 VBA 代码来复制数据而无需打开每个文件。
这是我的代码示例:
Set x = Workbooks.Open("C:\Bel.xls")
'Now, copy what you want from x:
x.Sheets("Daily Figures").Range("A13:j102").Copy
'Now, paste to y worksheet
y.Activate
Sheets("Data - Daily").Range("N2").PasteSpecial
'Close x:
Application.CutCopyMode = False
x.Close
Sheets("sheet1").Range("M4") = Date
【问题讨论】:
-
你试过谷歌吗?执行Excel4Macro
-
尝试-
y.Sheets("Data - Daily").Range("N2").PasteSpecial-然后在打开工作簿之前查看application.screenupdating=false -
您通常最好从控制的角度打开工作簿,而不是 xlm 宏的正常“关闭”方法、ADO 和创建直接链接。例如,ADO 可能会遇到混合数据类型的问题
-
另外,尝试使用 Application.EnableEvents = false 和 Application.EnableEvents = true 。每次进行粘贴时,都会触发一个事件。 Application.EnableEvents = false 可以提高速度。