返回列表 上一主題 發帖

[發問] 有辦法共用VBA巨集模組嗎?

[發問] 有辦法共用VBA巨集模組嗎?

假設我現在有多個檔案,我的檔案的程式碼都是一樣的,那VBA的模組有辦法封裝或是共用嗎?
這樣如果程式碼要修改或是維護就不用一個一個改了。

本帖最後由 n7822123 於 2019-6-19 01:38 編輯

回復 1# s13030029


方法一:  把你的巨集寫在 個人巨集活頁簿 ,只要修改裡面的巨集即可讓各個excel都可使用

方法二: 把你的巨集匯出到固定位置的資料夾內,未來只要維護該資料夾內的巨集檔案(.bas)即可
              在你要執行巨集的檔案寫入以下巨集,此巨集可以讓活頁簿打開的時候,會自動匯入指定的巨集檔 (.bas)
              注意,要寫在ThisWorkbook 裡面, 路徑檔名的部分請自己設定

自動匯入BAS檔的巨集如下:

Private Sub Workbook_Open()
xPath$ = "C:\Users\user\Desktop\要匯入的VBA.bas"    '路徑檔名自己設定
ThisWorkbook.VBProject.VBComponents.Import xPath
End Sub
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 2# n7822123


如果你的電腦只有你一個使用者的話,我會建議方法一比較簡單。
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 3# n7822123
我試了第二個方法,我每次打開檔案他就匯入一次模組@@
我的模組就多了好幾個,這要怎麼解決????

TOP

本帖最後由 n7822123 於 2019-6-19 21:47 編輯

回復 5# s13030029


恩......這是個問題 哈哈,那就只能先移除再匯入啦,如下

Private Sub Workbook_Open()
With ThisWorkbook.VBProject
  For Each vbc In .VBComponents
    If vbc.Type = 1 Then .VBComponents.Remove .VBComponents(vbc.Name) 'type 1=一般模組
  Next
End With
XPath$ = "C:\Users\user\Desktop\要匯入的VBA.bas"  '路徑檔名自己設定
ThisWorkbook.VBProject.VBComponents.Import XPath
End Sub
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

        靜思自在 : 【時間無法遮擋】怕時間消逝,花了許多心血,想盡各式方法要遮擋時間,結果是:浪費了更多時間,且一無所成!
返回列表 上一主題