而不是將所有宏存儲在每個工作簿中,我們希望將它們存儲在一個全局宏中。我們嘗試使用Personal.xlsb文件,但每次Excel崩潰或系統管理員強制重新啓動時,打開它創建personal.v.01 .... v.100文件,並且它們互相干擾,損壞等。相反,我們試圖爲每個我們製作的excel工作簿添加一個小宏,然後應該用全部宏打開一個全局excel工作簿,但是它不打開它(normal.xlsb),問題在哪裏?如果我手動運行它,它工作得很好,它只是不自動運行..使用包含所有宏的vba打開另一個工作簿
Option Explicit
Public Sub Workbook_Open()
Dim sFullName As String
Dim xlApp As Excel.Application
Dim wbReturn As Workbook
sFullName = "Z:\Dokumentstyring\normal.xlsb"
Set xlApp = GetObject(, "Excel.Application") 'need to do so to open it in same instance otherwise the global macros can not be called.
Set wbReturn = xlApp.Workbooks.Open(filename:=sFullName, ReadOnly:=True)
If wbReturn Is Nothing Then
MsgBox "Failed to open workbook, maybe z drive is down?"
Else
ThisWorkbook.Activate'Dont know how to pass object to modules, so instead activate it and in createbutton set wb= activeworkbook..
Application.Run ("normal.xlsb!CreateButtons")
End If
End Sub
Public Sub Workbook_BeforeClose(Cancel As Boolean)
Dim wb As Workbook
For Each wb In Application.Workbooks
If InStr(UCase(wb.Name), "PARTSLIST") > 0 And wb.Name <> ThisWorkbook.Name Then Exit Sub
Next wb
On Error Resume Next
Workbooks("normal.xlsb").Close
Workbooks("filter.xlsx").Close
End Sub
你試過使用'AddIn'嗎?所有的宏,然後引用它,然後'MYAddInName.MyFunctionName(x,y,z)'等等 –
你是唯一一個打開/使用個人excel文件的人嗎? – user1
@Nathan_Sav如何在網絡驅動器上發佈插件的新版本,而不需要用戶打開他們的Excel和新鏈接?不,我們是50人使用personal.xlsb文件,因此移動到正常的.xlsb文件,我們打開爲只讀 – skatun