将“ThisWorkbook”macros导入到另一个工作簿
我需要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
事件。
而不是创build新的工作簿:
Set WBK = Workbooks.Add
考虑使用类似于:
Sub lkjhgf() ThisWorkbook.SaveCopyAs ("C:\Users\Garys\Desktop\new.xlsm") End Sub
新创build的工作簿将包含原始版本的所有ThisWorkbook
代码。
(当然,你可能有更多的清理工作来清除你不需要复制的东西。)
编辑#1:
请参阅Vogelaar的答案:
使用VBA将子例程加载到“ThisWorkbook”中