我想为excel 2013创建一个vba宏。这个vba宏必须可用于所有excel文件,我在互联网上搜索,我发现我必须将代码放入Excel加载项,所以我尝试制作excel活动开放代码;代码如下:
Private Sub Workbook_Open()
If (ActiveWorkbook.Path = "C:\GED\TEMP") Then
MsgBox "Hello"
End If
End Sub
问题是,当我打开excel文件时,vba不知道活动工作簿,因为它先在XLSTART中打开文件然后是我当前的文件,所以我有以下错误:运行时错误' 91&# 39;:对象变量或未设置块变量。所以请任何想法;我应该在开头
检查工作簿的路径答案 0 :(得分:1)
您需要应用程序级事件来捕获任何工作簿的打开。用以下代码替换您的代码:
Option Explicit
Private WithEvents app As Excel.Application
Private Sub app_WorkbookOpen(ByVal Wb As Workbook)
If UCase$(Wb.Path) = "C:\GED\TEMP" Then MsgBox "Hello"
End Sub
Private Sub Workbook_Open()
Set app = Application
End Sub