受保护工作表上的表单控件

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

【讨论】:

谢谢蒂姆,解决了它:)

以上是关于受保护工作表上的表单控件的主要内容,如果未能解决你的问题,请参考以下文章

缩放图像大小(Access 表单上的图像控件)

将表单控件链接到类

将数据加载到变量用户表单和控件中

弹出窗口 WPF 表单自定义控件内容

无论控件如何,在表单上的任何控件更新后有啥方法可以触发事件?

根据文本控件值标记和启用/禁用连续表单上的按钮