从VBA打开工作簿并禁用Workbook_Open()代码?

问题描述:

我使用VBA打开电子表格,并且一些工作簿包含在调用Workbook_Open()时开始执行的代码。从VBA打开工作簿并禁用Workbook_Open()代码?

我怎样才能打开工作簿使用VBA,但自动停止代码执行?我只打开工作簿查看工作表中的公式 - 我不想执行任何代码。

+0

您可以随时设置您的宏安全性来阻止所有的宏。这可能不理想,但应该做你所问的。 – Gaffi 2013-04-30 13:49:08

你想尝试禁用的活动您在VBA打开工作簿之前,然后重新启用他们模块的休息吗?尝试使用这样的事情:

Application.EnableEvents = False 'disable Events 
workbooks.Open "WORKBOOKPATH"  'open workbook in question 
Application.EnableEvents = True 'enable Events 
+0

如果这不起作用,另一种解决此问题的方法是在模块中声明全局布尔值,并在需要或不需要运行Workbook_Open()代码时将其设置为true或false。您将不得不添加If()语句来检查Workbook_Open()子项中的布尔值。 – dnLL 2013-04-30 14:09:43

+1

或者使用'Application.AutomationSecurity'进行研究' – 2013-04-30 15:02:04

+0

我认为这些宏仍然启用,并且可以在EnableEvents重新启用后触发。 – Tuntable 2017-12-04 01:52:41

Application.EnableEvents和工作簿特定Application.EnableEvents相结合的伟大工程。任何时候重新引用工作簿(例如复制单元格),都会重新触发激活事件。工作簿已率先退出,关闭所以尽量在此之后不能被访问:

Dim wb as Workbook 
Application.EnableEvents = False 
Set wb = workbooks.Open "YOURWORKBOOKPATH" 
Application.EnableEvents = True 
wb.Application.EnableEvents = False 

**Code** 

wb.Application.EnableEvents = True 
wb.Close 
+2

没有“工作簿特定Application.EnableEvents”这样的事情。 wb.Application =应用程序 – MGM 2016-05-12 20:13:24

这里的另一种方式与开出VBA

Start Excel Application > Go to File > Recent >

enter image description here

按住Shift键并双击开 -

这样做会阻止发射的Workbook_Open事件,并从运行Auto_Open宏。

或按住Shift键并双击打开工作簿。

+0

他询问有关从VBA代码打开的问题。更难的问题。 – Tuntable 2017-12-04 01:49:48

我不知道为什么,这不是明明在其他的答案中提到,但我发现Application.AutomationSecurity是究竟需要做些什么。基本上

Application.AutomationSecurity = msoAutomationSecurityByUI 
'This is the default behavior where each time it would ask me whether I want to enable or disable macros 

Application.AutomationSecurity = msoAutomationSecurityForceDisable 
'This would disable all macros in newly opened files 

Application.AutomationSecurity = msoAutomationSecurityLow 
'This would enable all macros in newly opened files 

即使代码运行后,设置也不会恢复为默认行为,因此您需要再次更改它。因此对于这个问题

Application.AutomationSecurity = msoAutomationSecurityForceDisable 
' Your code 
Application.AutomationSecurity = msoAutomationSecurityByUI