我有一组相当复杂的脚本来执行我的工作中的特定功能。由于这项工作的性质,我已经验证了代码,并使用密码将其锁定得相当严密,以防止不适当的使用/编辑(脚本也被锁定,但此查询的脚本没有问题)。这一切都工作得很好,如果出现错误,它会退出并重新保护各个工作表和工作簿。所有宏都是通过相关工作表上的按钮(实际上只是指定了宏的对象,而不是较旧样式的编码按钮)运行的,并且输出良好。然而,今天早上我发现宏仍然可以通过标准的宏屏幕(Alt + F8)运行。由于我在其中有许多用于开发更新版本的脚本,因此我想禁用此功能。
我做了一个选项搜索,找到了UserInterFaceOnly,但它在我的Excel2010上不起作用,我被引导相信它可能不会在以后的版本中使用。有没有人知道如何禁用用户通过Alt + F8宏窗口运行宏的功能,同时允许运行分配给工作表中对象的宏?
锁定工作表/工作簿的代码如下:
For Each ws In Worksheets
ws.Cells.Locked = True
ws.Protect Password:=strPWD
Next ws
ActiveWorkbook.Protect Password:=strPWD
发布于 2019-01-18 08:31:11
我使用不同的方法找到了一个很好的解决方案。我没有试图锁定功能,而是在模块的开头使用了“Option Private module”条目,这意味着用户永远看不到已经编写的宏。
这个解决方案是显而易见的,但我以前根本没有使用过Private Module选项,所以我最初并没有想到它。希望这个对我自己问题的回答能让其他人在未来受益。
https://stackoverflow.com/questions/54245967
复制相似问题