vba - 使用 VBA 打开时获取 .xlsm 文件以不执行代码
问题描述
我在 Excel 中有一个宏。该宏的一部分使用Workbooks.Open(Filepath)
.
我正在打开的一些工作簿中包含(做得不好)VBA 代码,然后尝试计算 UDF 并严重失败。
如果不诉诸 anOn Error Resume Next
或 an On Error GoTo
,我怎么说“打开这个文件,不要运行任何代码”。
由于可能的安全问题,试图避免让代码首先执行。打开这些文件我感觉很舒服,而且它们很有可能不会受到损害,但是可能会发生违规行为,为什么在我不需要的时候有一个洞?我也不希望错误消息中断我的代码执行。
搜索网络只是显示我 shift+open 打开文件而不执行代码,这根本不是我想要做的。我正在寻找等效的 VBA 方法。
解决方案
AutomationSecurity
可能是您想要的:
https://docs.microsoft.com/en-us/office/vba/api/Excel.Application.AutomationSecurity
MsoAutomationSecurity 可以是这些 MsoAutomationSecurity 常量之一。
msoAutomationSecurityByUI。使用在“安全”对话框中指定的安全设置。
msoAutomationSecurityForceDisable。禁用以编程方式打开的所有文件中的所有宏,而不显示任何安全警报。注意此设置不会禁用 Microsoft Excel 4.0 宏。如果以编程方式打开包含 Microsoft Excel 4.0 宏的文件,将提示用户决定是否打开该文件。
msoAutomationSecurityLow。启用所有宏。这是应用程序启动时的默认值。
推荐阅读
- javascript - 如何在matrix3d上获得比例(x,y,z)和旋转(x,y,z)?
- shell - jq:错误(在
:0): 不能迭代数字 (400) - python - 我什么时候不应该在 init 函数后面加上参数?
- json - JSONDecoder 给出不正确的格式
- css - Angular ngClass mat-list-item 添加条件以应用背景颜色
- java - 是否可以将 Query-By-Example 与 spring 数据方法结合使用?
- c++ - c++中make_unique和make_unique与reference_wrapper的区别
- java - 由于其插件,所有 xml 文件的 Eclipse 错误
- php - 如果事务中发生错误,对表的 id 索引有影响吗?
- php - 如何禁用在 Google App Engine 容器上预安装和启用的一些 php 扩展