使用VBA打开时获取.xlsm文件不执行代码

Sel*_*kie 2 excel vba

我在 Excel 中有一个宏。该宏的一部分使用Workbooks.Open(Filepath).

我打开的一些工作簿中包含(做得不好)VBA 代码,然后尝试计算 UDF 并失败。

不求助于 anOn Error Resume Next或 an On Error GoTo,我怎么说“打开这个文件,不要运行任何代码”。

由于可能的安全问题,首先尝试避免让代码执行。我觉得打开这些文件很舒服,而且它们很有可能不会受到损害,但可能会发生破坏,为什么在我不需要的时候有一个漏洞?我也不希望错误消息中断我的代码执行。

在网上搜索只显示我 shift+open 打开文件而不执行代码,这根本不是我想要做的。我正在寻找等效的 VBA 方法。

Tim*_*ams 5

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。启用所有宏。这是应用程序启动时的默认值。