将 "ThisWorkbook" 宏导入另一个工作簿

Import "ThisWorkbook" macro to another Workbook

我需要 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 事件。

而不是创建新工作簿:

Set WBK = Workbooks.Add

考虑使用类似的东西:

Sub lkjhgf()
    ThisWorkbook.SaveCopyAs ("C:\Users\Garys\Desktop\new.xlsm")
End Sub

新创建的工作簿将包含原始工作簿中的所有 ThisWorkbook 代码。

(当然,您可能需要进行更多清理以删除不需要复制的内容。)

编辑#1:

在这里查看 Vogelaar 的回答:

Loading a subroutine into "ThisWorkbook" using VBA