问题描述
我希望仅在SAP BUSInesS ONE调用excel时才激活工作簿事件处理程序(Application.WorkbookOpen事件())吗? 我该怎么做 ? 谢谢
Dov
解决方法
WorkbookOpen
始终会触发,无论您如何打开文件。
解决此问题的唯一方法是编写另一个Excel文件,该文件可用作您的工作簿的启动器并防止运行事件:
使用以下代码创建一个新的Excel文件MyLauncher.xlsm
并添加一个WorkbookOpen
事件:
Option Explicit
Private Sub Workbook_Open()
Application.EnableEvents = False
Application.Workbooks.Open Filename:="C:\yourpath\yourfile.xlsm"
Application.EnableEvents = True
ThisWorkbook.Close SaveChanges:=False
End Sub
如果您现在打开MyLauncher.xlsm
,它将在不运行WorkbookOpen
事件的情况下启动文件。
但是对于打开原始文件yourfile.xlsm
的任何人,WorkbookOpen
事件都会运行。