簡體   English   中英

從 VBA 打開工作簿並禁用 Workbook_Open() 代碼?

[英]Open a workbook from VBA and disable Workbook_Open() code?

我正在使用 VBA 打開電子表格,並且一些工作簿包含在調用 Workbook_Open() 時開始執行的代碼。

如何使用 VBA 打開工作簿但停止代碼自動執行? 我只是打開工作簿來查看工作表中的公式 - 我不想執行任何代碼。

是否要在VBA中打開工作簿之前嘗試禁用事件,然后為模塊的其余部分重新啟用它們? 嘗試使用這樣的東西:

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

我不知道為什么在其他答案中沒有明確提到這一點,但我發現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

即使在代碼運行后,設置也不會恢復為默認行為,因此您需要再次更改它。 因此對於這個問題

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

這里有另一種打開vba的方法

Start Excel Application > Go to File > Recent >

在此輸入圖像描述

按住Shift鍵並雙擊打開 -

執行此操作將阻止觸發Workbook_Open事件並運行Auto_Open宏。

或按住Shift鍵並雙擊打開工作簿。


對於VBA使用Application.EnableEvents屬性(Excel)

Application.EnableEvents和特定於Workbook的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

打開一個空的excel宏文件,放一個Application.EnableEvents = False的宏,然后打開文件。 之后做 Application.EnableEvents = True。

將 xlapp 調暗為新的 Excel.Application

將 wb 調暗為工作簿

xlapp.EnableEvents = 假

Set wb = xlapp.Workbooks.Open("我的工作簿名稱")

'處理工作簿

wb.Close 保存更改:= false

xlapp.退出

設置 wb = 無

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM