症狀
在 Office Excel Microsoft,Microsoft Visual Basic for Application (VBA) 巨集程式碼如果「藏在」工作紙或工作簿後面,可能無法正常運作。
原因
若以下兩個條件皆成立,則會發生:
- 相關程式碼包含在自動執行的子程式中,例如Auto_Open子程式或Auto_Close子程式。
- 程式碼不包含在 Visual Basic 模組中,而是「藏在」工作表或工作簿本身。
因應措施
為了讓自動執行的子程式能在 Microsoft Excel 中正確運作,必須將它們包含在 Visual Basic 模組中。
你必須在工作簿中插入一個 Visual Basic 模組,然後再把程式碼放入新的模組。
要插入 Visual Basic 模組:
- 在 Visual Basic 編輯器的專案總管中,啟動包含該程式碼的工作簿。
- 在 [插入] 功能表上,按一下 [模組]。
插入新模組後,將程式碼從原始位置剪下並貼上到 Visual Basic 模組中。 然後,把作業本保存起來。
更多資訊
在 Excel 中,VBA 程式碼可以儲存在三個不同位置:Visual Basic 模組、Visual Basic 類別模組,以及「後方」工作表和工作簿。
要編輯工作表或工作簿「後面」的程式碼:
- 啟動 Visual Basic 編輯器 (按下 ALT+F11) 。
- 在專案檔案總管視窗中,你會看到類似以下條目的條目:
VBAProject (Book1)
Microsoft Excel Objects
Sheet1 (Sheet1)
Sheet2 (Sheet2)
Sheet3 (Sheet3)
ThisWorkbook
Modules
Module1
如果你雙擊其中一個工作紙名稱或 ThisWorkbook,可以在程式碼視窗輸入程式碼。 未包含在 Visual Basic 模組中的程式碼被視為「在工作表後方」或
這本工作手冊。
如果Auto_Open、Auto_Close或其他自動執行的子程式被儲存在工作表或 ThisWorkbook 的「後方」,當你開啟或關閉工作簿,或執行應該讓子程式執行的動作時,它可能會無法正常運作。