我一直在爲我的團隊在工作中使用的項目工作。 Excel 2003電子表格位於NT NFS上,因此它們都可以使用它。我喜歡XLA,但是關於它們的一件令人討厭的事情似乎是它們似乎並不依賴於工作簿。安裝它爲其餘的,反之亦然。在編譯時使用其他語言,您可以輕鬆鏈接特定源文件的庫。在Excel中創建/使用自定義VBA庫
我想知道是否有可能有工作簿依賴Excel VBA自定義庫,以及如何做到這一點?謝謝
我一直在爲我的團隊在工作中使用的項目工作。 Excel 2003電子表格位於NT NFS上,因此它們都可以使用它。我喜歡XLA,但是關於它們的一件令人討厭的事情似乎是它們似乎並不依賴於工作簿。安裝它爲其餘的,反之亦然。在編譯時使用其他語言,您可以輕鬆鏈接特定源文件的庫。在Excel中創建/使用自定義VBA庫
我想知道是否有可能有工作簿依賴Excel VBA自定義庫,以及如何做到這一點?謝謝
我使用的解決方案是編寫我自己的自定義代碼來加載和卸載加載項,具體取決於打開哪些工作簿。這很痛苦,但它完成了我想要的完美功能。爲了讓每個人都能共享它們,我把它們放在一個NFS上,並讓它們成爲只讀的。當我想要更改這些庫時,我打開它們進行簡短的編寫。
我爲此使用CustomDocumentProperties。加載項包含所有代碼,「模板」是要處理的文檔。在模板中,創建一個名爲「MyApp」的CustomDocumentProperty或其他。在加載項中,使用應用程序級別事件來監視workbook_open調用。在這種情況下,請檢查打開的工作簿是否包含您的應用程序的CustomDocumentProperty。如果確實如此,請展示加載項的UI(例如使菜單可見)。
也http://www.dailydoseofexcel.com/archives/2004/07/16/custom-document-properties/
看到在這個例子中,我使用Window_Activate事件。如果激活了正確類型的工作簿,我將顯示自定義工具欄。如果它被停用,我會隱藏它。
當我說一個文件時,我應該說這個文件只是主文件。每個團隊成員遠程更改外部Excel文檔,並將這些更改遠程「提交」到主文件,這是我所指的文件。原因是我需要能夠合併對形狀所做的更改,並且Share Workbooks不執行此操作,並且一次只有一個人可以對文檔擁有寫入權限。無論如何,這些開發區域都擁有大部分相同的VBA代碼,每次有變更時,都必須向其他人提出。 – Wes 2011-12-29 03:37:06
導入/導出模塊不起作用,因爲每次對.bas文件進行更改時,必須手動爲每個遠程Excel文檔重新導入導入/導出模塊。插件可以解決這個問題,因爲我只需要對一個地方進行一次更改。 – Wes 2011-12-29 03:46:22
爲了迴應迪克,我會利用你的建議,因爲我認爲它對我有一點幫助。但是根本的問題仍然存在,如果你打開了一堆excel工作簿,並且只有其中一個使用加載項,那麼如何不爲所有這些插件安裝該加載項,並且只有其中之一?也許我只是挑剔。 – Wes 2011-12-29 04:44:53
VBA的美妙之處在於代碼與Excel文檔本身相關聯。你在做什麼需要加載項?使用加載項將增加更多的維護,並且如果您需要代碼均勻應用於所有工作簿,則通常會使用該加載項。 – Fink 2011-12-28 16:05:01
你的意思是,除了可以導出和導入爲* .bas文件的模塊以外?如果這不符合「工作簿依賴Excel VBA定製庫」的要求,那麼請澄清爲什麼不。 – 2011-12-28 18:13:35