【问题标题】:Form controls on protected sheet受保护工作表上的表单控件
【发布时间】:2022-01-23 14:08:23
【问题描述】:

有一个带有运行宏按钮的受保护工作表的旧文件。按下按钮时执行宏,但我需要知道哪个按钮执行哪个宏。右键单击不起作用,因为工作表受到保护,也没有启用设计模式。如何获取这些信息?任何帮助将不胜感激。

【问题讨论】:

  • 即使工作表受到保护,您也可以看到 VBA 代码...您知道它是什么类型的按钮吗?如果是 ActiveX,它会将代码保留在工作表代码模块中存在的位置。只需右键单击工作表名称并选择View Code,您就可以访问和修改其代码。如果表单按钮具有分配的宏,它可以在任何模块中,您必须搜索它,当子名称可能与代码的功能匹配时放置断点......当然,如果 VBA 项目不受保护,也。即使它的保护不是真正安全的东西......
  • 谢谢,如果它是activex,它会更容易......这些是表单控件,我无法猜测当按下特定按钮时最初会触发哪个宏......有许多按钮和许多宏,并且宏相互调用....似乎不走运:(顺便说一句,vba不受保护
  • 没有标准的方法可以做到这一点。如果要调用的宏内部是Application.Caller,那将很容易。但我不认为按钮的作用不能导致猜测某些宏名称的范围很窄......我认为它应该以某种方式连接到按钮标题。如果不是机密内容,您可以在讨论中分享工作簿吗?
  • 谢谢,但这是机密文件 :(
  • 我没问题。我不喜欢查看属于别人的工作簿。我只是想尝试帮助。祝你成功!

标签: excel vba


【解决方案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

【讨论】:

  • 谢谢蒂姆,解决了它:)
猜你喜欢
  • 2016-11-24
  • 2018-03-11
  • 1970-01-01
  • 1970-01-01
  • 2015-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-07
相关资源
最近更新 更多