【发布时间】:2017-09-25 10:09:01
【问题描述】:
我有一种情况,我将启用宏的工作簿保存到不受信任的文件夹中(就像我的用户可能会做的那样)。当我从 Excel(最新列表或文件 > 打开)打开文件时,文件打开,我收到警告横幅并单击启用内容。我在 Workbook_Open 例程的顶部有一个“Hello World”msgBox,但没有出现该消息(以及因此的其余代码)。
如果我关闭并重新启动 Excel,然后打开文件,Workbook_Open 事件就会运行。
任何想法如何解决这个问题?让用户在他们可能要保存到的多个文件夹上设置受信任的位置并不是一个好的解决方案,要求他们关闭并重新启动 Excel 也不可行。
谢谢各位!
【问题讨论】:
-
一般来说,VBA 无法绕过安全设置。这是有充分理由的,并且(显然)是设计使然。您可以考虑一种绕过方法来提醒用户必须采取哪些手动步骤:ozgrid.com/forum/showthread.php?t=16599
-
我认为您的意思是,如果从 Excel 的活动会话中打开文件,尽管单击“启用内容”,但内容未启用 - 并且
Workbook_Open事件不会火?但是,如果 Excel 没有其他任何东西打开,事件会触发吗? -
用户信任的digital signature(VBA 代码)可能会有所帮助
-
并不是你需要关闭并重新启动Excel。启用内容后,您必须将工作簿保存到光盘。下次打开工作簿时,横幅将不会出现,并且会触发 Open 事件。
-
大卫,我不想绕过安全措施。仅在用户关闭文件、重新打开文件(在同一个 Excel 实例中)并单击“启用内容”后才尝试运行 Workbook_Open 例程。