【问题标题】:Import "ThisWorkbook" macro to another Workbook将“ThisWorkbook”宏导入另一个工作簿
【发布时间】:2018-03-16 23:29:21
【问题描述】:

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

【问题讨论】:

    标签: vba excel import vbe


    【解决方案1】:

    而不是使用以下方法创建新工作簿:

    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

    【讨论】:

    • 谢谢,但是我有宏可以将 SheetA 从主工作簿复制到 newWorkbook,并且在这个 newWorkbook 中,如果可能的话,我需要将 Private Sub 添加到“ThisWorkbook”。这个 PrivateSub 我真的不需要在主工作簿中。
    猜你喜欢
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多