[英]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.