我在Excel 2003電子表格中有一個VBA宏,我想將它安裝在運行Excel的計算機上。在Excel 2007中安裝VBA宏
我在本地機器上創建了'可信位置',並且我知道如何將模塊複製到現有工作簿並指定一個組合鍵來調用它,但我不知道如何使宏自動出現當有人啓動Excel時。幫幫我?
我在Excel 2003電子表格中有一個VBA宏,我想將它安裝在運行Excel的計算機上。在Excel 2007中安裝VBA宏
我在本地機器上創建了'可信位置',並且我知道如何將模塊複製到現有工作簿並指定一個組合鍵來調用它,但我不知道如何使宏自動出現當有人啓動Excel時。幫幫我?
最簡單的解決方案是(包括xl2003和xl2007)將包含宏的xls複製到客戶端機器的路徑= Application.StartupPath
(可以構建一個簡單的vbscript安裝程序,它可以實例化excel並檢索此信息)。
這樣,您的宏將可用於任何工作簿,因爲位於startuppath的xls文件在Excel啓動時加載。
我不知道你所說的「出現」的意思,但你可以自動調用它
Private Sub Workbook_Open()
End Sub
的ThisWorkbook
對象模塊中執行它。那是你在找什麼?
我記得舊的方法是將您的宏保存在您的Personal.xls
工作簿中 - 那麼無論何時您打開Excel,它都可以訪問 - 此更改是否適用於2007?
我記得老辦法是,以節省您的宏在你的Personal.xls 工作簿 - 那麼這將是訪問 你打開任何時候Excel的 - 這已經改變了2007年?
那是a的方法。更好的方法是(現在是)創建一個加載項,然後您可以通過工具 - >加載項啓用&禁用。 (即使關閉並重新啓動Excel,加載項也將保持啓用狀態)。您可以將任何.XLS文件保存爲加載項(.XLA)。
在您的外接程序可以只需使用一個Auto_Open
方法:
Private Sub Auto_Open()
DoStuff
End Sub
...或者,你可以掛鉤的Workbook_Open
事件,萊恩暗示。
當然,由於用戶可以禁用加載項,因此您還需要在Auto_Close
(或在Workbook_BeforeClose
事件中)執行相反操作。其實,如果你使用事件,最好使用Workbook_AddinInstall
和Workbook_AddinUninstall
事件。使用它們稍微更「正確」,並且還具有如下優點:如果關閉Excel,則「關閉」事件不會觸發,然後在提示保存時點擊取消。
+1爲更清潔(儘管更苛刻)的解決方案。這聽起來像是「正確的方式」。 – 2010-11-17 16:24:49