将“ThisWorkbook”宏导入到另一个工作簿

问题描述:

我需要VBA代码才能将过程导入另一个工作簿中的ThisWorkbook作用域。将“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 

这需要模块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

+0

谢谢你,但是我有宏希达复制从主簿,以newWorkbook在这newWorkbook我需要添加私人小组,以“ThisWorkb如果可能的话。这个PrivateSub我真的不需要在主要工作簿中。 –

+0

@RomanŽydyk看到我的**编辑#1 **这是否有帮助? –

+0

就是这样!完善!非常感谢你! –