【发布时间】:2017-10-25 23:09:24
【问题描述】:
我有一个工作簿,打开时会扫描特定的插件,如果它已经打开,它不会重新打开它,但如果不是,它会打开它。首先,它将扫描 application.vbe.vbprojects 以查找未注册的插件。如果我自己打开工作簿它工作正常,如果我先打开一个空白工作簿然后我打开将打开插件的工作簿,我收到一个错误:
Private Sub Workbook_Open()
Dim vbproj As Object
Dim theName As String
Dim flag as Boolean
For Each vbproj In Application.VBE.VBProjects
theName = GetFilenameFromPath(vbproj.filename) <<--- Run-time error '76'" Path not found
If theName = "AddIn.xlam" Then
Flag = True
Exit For
End If
Next vbproj
If Flag = False Then
Workbooks.Open ("C:\AddIn.xlam"), , True
Workbooks("AddIn.xlam").IsAddin = True
End If
End Sub
Function GetFilenameFromPath(ByVal strPath As String) As String
If Right$(strPath, 1) <> "\" And Len(strPath) > 0 Then
GetFilenameFromPath = GetFilenameFromPath(Left$(strPath, Len(strPath) - 1)) + Right$(strPath, 1)
End If
End Function
【问题讨论】:
-
调试您的代码以查看
vbproj.filename是否返回一个可以使用的值。Debug.Print vbproj.filename -
它没有返回任何东西,这是错误的原因之一,但为什么呢?
-
那么Application.VBE.VBProjects中没有对象。所以你可以在没有对象的情况下添加一个错误处理程序,然后设置
flag = True -
我只是好奇为什么打开空白工作簿后打开时会没有vbproject,而不是单独打开它。
-
尝试使用
vbproj.name而不是vbproj.filename
标签: vba