我需要VBA代码将过程导入另一个工作簿中的ThisWorkbook
范围。
我有代码将模块导入另一个工作簿,但是如何将此过程导入ThisWorkbook
范围而不是模块范围?
Sub TransferModule()
Const modul As String = "Misc"
Const tempfile As String = "/Users/Roman/Desktop/temp.bas"
Dim WBK As Workbook
On Error Resume Next
Set WBK = Workbooks.Add
ThisWorkbook.VBProject.VBComponents(modul).Export tempfile
WBK.VBProject.VBComponents.Import tempfile
Kill tempfile
End Sub
这会从“This”工作簿中获取模块Misc
,将其导出到temp.bas
,然后将其导入另一个工作簿。但是我需要它不导入模块,而是导入ThisWorkbook
范围。这是Private Sub Workbook_BeforeClose
事件。
答案 0 :(得分:3)
而不是使用:
创建新工作簿Set WBK = Workbooks.Add
考虑使用类似的东西:
Sub lkjhgf()
ThisWorkbook.SaveCopyAs ("C:\Users\Garys\Desktop\new.xlsm")
End Sub
新创建的工作簿将包含原始代码的所有ThisWorkbook
代码。
(当然,您可能需要进行更多清理才能删除不需要复制的内容。)
修改#1:强>
请参阅Vogelaar的答案: