【问题标题】:VBA: How would my code check whether I have unlocked it?VBA:我的代码将如何检查我是否已解锁?
【发布时间】:2017-12-23 01:09:12
【问题描述】:

有没有办法让我的代码检查 VBA 编辑器中的代码是否已解锁以进行编辑?我想创建一个全局“管理模式”变量,它可以让我在开发环境和实时环境中获得更多控制权。

【问题讨论】:

  • 你到底想要什么?你能举一些例子吗?
  • 通过保护我们的代码,我们基本上通过解锁来启用“管理模式”。我想在我的代码中利用这一点。我打算使用具有附加功能的表单,该功能仅在启用“管理模式”时可见(我已解锁代码)

标签: vba password-protection


【解决方案1】:

这可以解决问题,并且 应该 像 UDF 一样工作(尽管它是易变的)。但是,这要求宏具有对 VBProject 的编程访问权限,默认情况下未启用,必须在 Excel 的信任中心选项中启用(每个用户)。小鸡和鸡蛋,没有办法以编程方式设置信任中心选项。

Public Function IsDevMode() As Boolean
  IsDevMode = (ThisWorkbook.VBProject.Protection=0)
End Function

但是,没有事件可以捕获以了解此值何时更改,因此很难使用它来更改您的工作簿以进入和退出“开发人员模式”。更好的选择可能是在某处添加一个按钮来切换“开发人员模式”(隐藏和显示事物,解锁/锁定工作表等),并在该切换按钮的单击方法中,使用上面的代码查看 if 代码已在此会话中解锁。如果是,请继续,如果不是,请忽略。这样,通过解锁您的代码,您基本上可以授予自己使用所述按钮的权限。

【讨论】:

    猜你喜欢
    • 2020-12-12
    • 2014-02-28
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    相关资源
    最近更新 更多