2017-10-05 79 views
3

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

回答

3

,而不是創造新的工作簿:

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

就是這樣!完善!非常感謝你! –

相關問題