【发布时间】:2013-04-23 01:22:53
【问题描述】:
我想使用宏在新工作簿中只保存一些预定义的工作表。
我使用userform 询问新文件的名称,创建并打开它,然后将旧文件一张一张地复制并粘贴到新文件中。
这已经花费了很多时间来运行,而且随着我在工作表中复制和粘贴的数据越来越多,情况会变得更糟。
还有其他方法吗?
这是我的代码:
WB2 是旧书,Ws 是旧书中的工作表,WB 是新书,Dico_export 是包含要复制的工作表名称的字典。
For Each WS In WB2.Worksheets
If Dico_Export.Exists(WS.Name) Then
WB2.Worksheets(WS.Name).Copy after:=WB.Sheets(1 + i)
If WS.Name <> "Limites LPG" Then
tabl(i) = WS.Name
End If
i = i + 1
End If
Next
【问题讨论】:
-
您使用什么方法将工作表复制到新文件?
-
对于第一本书中的每张纸,我检查名称是否与数组匹配。如果是,我使用方法 .copy 。
-
将现有代码添加到您的问题中
-
在运行宏之前尝试禁用计算、事件和屏幕更新,然后重新启用它们...如果 Excel 正在重新计算,它必须考虑所有新的可能数据