受保护工作表上的表单控件
Posted
技术标签:
【中文标题】受保护工作表上的表单控件【英文标题】:Form controls on protected sheet 【发布时间】:2022-01-23 14:08:23 【问题描述】:有一个带有运行宏按钮的受保护工作表的旧文件。按下按钮时执行宏,但我需要知道哪个按钮执行哪个宏。右键单击不起作用,因为工作表受到保护,也没有启用设计模式。如何获取这些信息?任何帮助将不胜感激。
【问题讨论】:
即使工作表受到保护,您也可以看到 VBA 代码...您知道它是什么类型的按钮吗?如果是 ActiveX,它会将代码保留在工作表代码模块中存在的位置。只需右键单击工作表名称并选择View Code
,您就可以访问和修改其代码。如果表单按钮具有分配的宏,它可以在任何模块中,您必须搜索它,当子名称可能与代码的功能匹配时放置断点......当然,如果 VBA 项目不受保护,也。即使它的保护不是真正安全的东西......
谢谢,如果它是activex,它会更容易......这些是表单控件,我无法猜测当按下特定按钮时最初会触发哪个宏......有许多按钮和许多宏,并且宏相互调用....似乎不走运:(顺便说一句,vba不受保护
没有标准的方法可以做到这一点。如果要调用的宏内部是Application.Caller
,那将很容易。但我不认为按钮的作用不能导致猜测某些宏名称的范围很窄......我认为它应该以某种方式连接到按钮标题。如果不是机密内容,您可以在讨论中分享工作簿吗?
谢谢,但这是机密文件 :(
我没问题。我不喜欢查看属于别人的工作簿。我只是想尝试帮助。祝你成功!
【参考方案1】:
也许从类似的东西开始?
Dim ws As Worksheet, shp
For Each ws In ActiveWorkbook.Worksheets
For Each shp In ws.Shapes
Debug.Print ws.Name, shp.Name, shp.OnAction
Next shp
Next ws
【讨论】:
谢谢蒂姆,解决了它:)以上是关于受保护工作表上的表单控件的主要内容,如果未能解决你的问题,请参考以下文章