excel - 检查 Workbook_Open 是否在工作簿中使用
问题描述
我已经构建了一个自定义 excel 加载项,我想检查打开的任何工作簿是否已经在工作簿中处理了 Workbook_Open 事件。基于它,如果已经处理,我想提示用户遵循一些说明。下面是用户工作簿的 ThisWorkbookk 中使用的方法的代码片段。
Private Sub Workbook_Open()
'Some code user had already written here
End Sub
我已经检查了 ThisWorkbook 对象,它没有任何已使用的属性或事件列表。
是否有任何方法或属性来确定用户工作簿中是否使用了工作簿的打开事件。
解决方案
下面是可以检查WorkBook_Open
程序是否存在于工作簿中的代码。
- 更改代码中的文件名
设置对Microsoft Visual Basic for Applications Extensibility 5.3 Library的引用
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
推荐阅读
- amazon-web-services - 如何在同一 AWS EB 应用程序中托管基于不同版本的路由
- elasticsearch - ElasticSearch 日期范围查询不适用于自定义日期格式
- javascript - 从我的 React 组件中的文本中打印字母,就像旧的视频游戏一样
- ios - 无法添加钥匙串项。错误 - 使用 KeychainItemWrapper 更改标识符后出现 25299?
- javascript - 我们可以同时使用 `export default` 和 `module.exports` 吗?
- angular - 为不同的 REST / WebServices 配置不同的 Angular 6 HttpClient 标头
- jquery - jQuery 选择菜单 onchange
- forms - 表单在元素 UI 中缓存错误的字段
- sql-server - 在 spring 中使用自定义 MSSQL 查询
- php - 将php curl转换为curl