ActiveWorkbook Path VBA宏Excel 2013出错?

时间:2014-10-10 10:46:26

标签: vba excel-vba excel-2013 excel

我想为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;:对象变量或未设置块变量。所以请任何想法;我应该在开头

检查工作簿的路径

1 个答案:

答案 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