我有一种情况,我将一个启用宏的工作簿保存到一个不受信任的文件夹(就像我的用户可能会这样)。当我从Excel(最新列表或文件>打开)打开文件时,文件打开,我收到警告标题,然后单击启用内容。我有一个" Hello World" msgBox位于Workbook_Open例程的顶部,但是消息(以及代码的其余部分)没有出现。
如果我关闭并重新启动Excel,然后打开文件,Workbook_Open事件就会运行。
任何想法如何解决这个问题?让用户在可能保存到的多个文件夹上设置受信任位置不是一个好的解决方案,也不要求他们关闭并重新启动Excel。
谢谢,伙计们!
答案 0 :(得分:0)
Copypasta:
https://excelribbon.tips.net/T012873_Always_Opening_a_Workbook_that_is_Editable.html
如果你真的想要确保真正的"受保护的视图"关闭,这是一个不同的故事。受保护视图的设置在信任中心中逐个系统地进行控制。您可以按照以下步骤查看设置:
图1.“信任中心”对话框。
可用的实际保护视图设置取决于您使用的Excel版本。如上所述,这些设置在系统级别进行控制;它们不是在工作簿的基础上处理的。结果是宏代码无法规避它们。如果他们可以,那么它将使系统完全容易受到正在打开的工作簿中的任何代码的影响 - 我们将回到与某些早期版本的Office产品相同的宏病毒时代。
有关受保护的视图设置如何操作的其他信息,请访问此Microsoft网站:
http://office.microsoft.com/en-us/excel-help/what-is-protected-view-HA010355931.aspx
工作簿是否在受保护的视图中打开取决于用户的系统设置。这意味着对打开的内容的控制完全取决于个人用户,并且不能被强迫"由工作簿作者。但是,有一些方法可以减轻这种影响,并且它们与信任有关。请注意,在“信任中心”对话框的左侧,有三个设置可控制与工作簿相关的设置:
对于您的工作簿,要绕过受保护的视图,您需要成为受信任的发布者,工作簿需要存储在受信任的位置,或者需要在系统上将其标记为受信任的文档。所有这些设置再次受用户控制,无法通过宏代码进行修改。
答案 1 :(得分:0)
根据您对问题的描述,David和Peh的回答和评论都是相关且正确的。签署和更改您的信任设置将解决此问题。我想将此添加为评论,但这太长了。
但是,如果您想知道 为什么 Excel会邀请您[Enable Content]
,但不会} 根据请求启用宏(我如何阅读你的问题)然后我也想知道。如果有设置禁止运行宏,则它/不应该为您提供启用。
如果重新创建问题,然后单击[Enable Content]
,是否可以通过切换到VBE编辑器并单击F5 / F8来手动运行宏?我怀疑不是。我怀疑当你点击[Enable Content]
时,Excel根本不会邀请启用宏,而是提供数据连接或类似的东西。
答案 2 :(得分:0)
我相信我已找到解决问题的方法。在代码保存文件的两个版本之前以及关闭打开文件之前,我添加了Application.EnableEvents = True。似乎在禁用事件的情况下保存文件,在同一个Excel实例中重新打开时,不会启用事件。我原本以为事件总是在打开时重新启用,但在我的情况下似乎并非如此。谢谢大家的回复和时间!