我正在通過VB應用程序將一個CSV數據加入到包含一些宏的現有Word(2010)主文檔中執行一個mailmerge。當合並完成後,我會顯示合併文檔和數據,客戶希望運行主文檔中針對合併文檔的一些宏。 但是,合併文檔中並不存在來自主文檔的宏,我想知道是否有某種方法可以讓他們繼續前進。主Word文檔中的宏在合併文檔中丟失
(我做的顯示給用戶之前保存在合併的文檔,所以也許保存導致我失去他們?)
我正在通過VB應用程序將一個CSV數據加入到包含一些宏的現有Word(2010)主文檔中執行一個mailmerge。當合並完成後,我會顯示合併文檔和數據,客戶希望運行主文檔中針對合併文檔的一些宏。 但是,合併文檔中並不存在來自主文檔的宏,我想知道是否有某種方法可以讓他們繼續前進。主Word文檔中的宏在合併文檔中丟失
(我做的顯示給用戶之前保存在合併的文檔,所以也許保存導致我失去他們?)
正確 - 宏不會被複制。如果是這樣,你可以想象一個巨大的維護問題可能會被創建,因爲每個創建的合併文檔都會有一個宏的副本,而不是指向它們的指針。
通常情況下,您必須將宏放在模板中,並確保郵件合併主文檔已附加到模板(例如,如果您從模板創建新的郵件合併主文檔,則會出現這種情況,例如)。
但是,當你這樣做時,既沒有autoopen也沒有autonew這樣的自動宏,現在等價的Document Events將在創建或完成郵件合併輸出文檔時自動運行。
此外,ISTR存在一個問題,即在保存輸出文檔(並且可能關閉/重新打開它)之前,宏可能不可見/可用。我忘記了究竟出了什麼問題。
如果您確實需要將宏複製到輸出文檔中,我認爲您最好將它們存儲在任何Word文檔之外的.bas文件中,並且您可以使用VB Extensibility庫來加載他們到輸出文件。