Application.WorkbookOpen事件SAP业务一

问题描述

我希望仅在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事件都会运行。