徵兆
在 Microsoft Office Excel 中,Microsoft Visual Basic for Application (VBA) 包含在工作表或活頁簿後面的宏程式碼可能無法正確運作。
原因
如果下列兩個條件皆為 True,就會發生這種情況:
-
有問題的程式碼會包含在自動執行的副程式內,例如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 模組中未包含的這類程式碼會被視為工作表的「後方」或
ThisWorkbook . 如果工作表或 ThisWorkbook 的「後方」儲存了Auto_Open、Auto_Close或其他自動執行的副程式,當您開啟或關閉活頁簿,或當您執行應導致副程式執行的動作時,可能無法正確運作。