首页 > 解决方案 > 打开带有宏的 Excel 工作簿时,VBA 代码死机

问题描述

运行以下代码时,excel 会提示我该文档不是来自受信任的来源,以及是否应禁用宏。这一切都很好,应该如何。单击启用宏时它可以正常工作,但是如果我单击禁用宏,则代码只会默默地死掉并且永远不会达到“成功”。当我使用GetObject()原始代码中的内容时也会发生同样的情况。

有没有办法默认打开工作表并禁用宏,而不是提示用户?或者至少以某种方式让代码再次运行?我不需要它们运行,只需以只读方式打开工作簿就可以了。

我知道我可以在我的机器上配置信任中心,但这适用于公司范围的项目,所以这不是一个选项。

还签署代码可能有用吗?

Sub test()
    Dim FileName As String
    Dim test As Workbook

    FileName = ".\hello.xlsm"
    Set test = Workbooks.Open(FileName, , True)

    MsgBox "Made it"
End Sub

标签: excelvba

解决方案


尝试这个:

Sub test()
    Dim FileName As String
    Dim test As Workbook

    FileName = ".\hello.xlsm"

    Application.AutomationSecurity = msoAutomationSecurityForceDisable
    Set test = Workbooks.Open(FileName, , True)
    Application.AutomationSecurity = msoAutomationSecurityByUI

    MsgBox "Made it"
End Sub

推荐阅读