我使用VBA打開電子表格,並且一些工作簿包含在調用Workbook_Open()時開始執行的代碼。從VBA打開工作簿並禁用Workbook_Open()代碼?
我怎樣才能打開工作簿使用VBA,但自動停止代碼執行?我只打開工作簿查看工作表中的公式 - 我不想執行任何代碼。
我使用VBA打開電子表格,並且一些工作簿包含在調用Workbook_Open()時開始執行的代碼。從VBA打開工作簿並禁用Workbook_Open()代碼?
我怎樣才能打開工作簿使用VBA,但自動停止代碼執行?我只打開工作簿查看工作表中的公式 - 我不想執行任何代碼。
你想嘗試禁用的活動您在VBA打開工作簿之前,然後重新啓用他們模塊的休息嗎?嘗試使用這樣的事情:
Application.EnableEvents = False 'disable Events
workbooks.Open "WORKBOOKPATH" 'open workbook in question
Application.EnableEvents = True 'enable Events
的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
沒有「工作簿特定Application.EnableEvents」這樣的事情。 wb.Application =應用程序 – MGM 2016-05-12 20:13:24
這裏的另一種方式與開出VBA
Start Excel Application > Go to File > Recent >
按住Shift鍵並雙擊開 -
這樣做會阻止發射的Workbook_Open
事件,並從運行Auto_Open
宏。
或按住Shift鍵並雙擊打開工作簿。
他詢問有關從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
您可以隨時設置您的宏安全性來阻止所有的宏。這可能不理想,但應該做你所問的。 – Gaffi 2013-04-30 13:49:08