繁体   English   中英

检查是否在工作簿中使用Workbook_Open

[英]Check if Workbook_Open is used in workbook

我已经构建了一个自定义的excel加载项,并且我想检查是否打开的任何工作簿都已经在该工作簿中处理过Workbook_Open事件。 基于此,如果已经处理过,我想提示用户一些说明。 下面是用户工作簿的ThisWorkbookk中使用的方法的代码片段。

    Private Sub Workbook_Open()
    'Some code user had already written here
    End Sub

我已经检查过ThisWorkbook对象,它没有任何属性或已使用的事件列表。

是否有任何方法或属性来确定是否在“用户”工作簿中使用了工作簿的“打开”事件。

下面的代码可以检查工作簿中是否存在WorkBook_Open过程。

  • 更改代码中的文件名
  • 设置对Microsoft Visual Basic应用程序可扩展性5.3库的引用

     Sub Check() Dim pk As vbext_ProcKind Dim vbProj As VBIDE.VBProject Dim vbComp As VBIDE.VBComponent Dim vbMod As VBIDE.CodeModule Set app = Excel.Application For Each vbProj In app.VBE.VBProjects If vbProj.filename = "C:\\Users\\mohit.bansal\\Desktop\\Test\\Faster.xlsm" Then For Each vbComp In vbProj.VBComponents Set vbMod = vbComp.CodeModule iLine = 1 Do While iLine < vbMod.CountOfLines sProcName = vbMod.ProcOfLine(iLine, pk) If sProcName <> "" Then 'Debug.Print vbComp.Name & ": " & sProcName If sProcName = "Workbook_Open" Then MsgBox "WorkBook_Open Exists!!" iLine = iLine + vbMod.ProcCountLines(sProcName, pk) Else iLine = iLine + 1 End If Loop Next End If Next End Sub 

礼貌: peltiertech

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM