徵兆

在 Microsoft Office Excel 中,Microsoft Visual Basic for Application (VBA) 包含在工作表或活頁簿後面的宏程式碼可能無法正確運作。

原因

如果下列兩個條件皆為 True,就會發生這種情況:

  • 有問題的程式碼會包含在自動執行的副程式內,例如Auto_Open或Auto_Close次程式。

  • 此程式碼不包含在 Visual Basic 模組中,而是「後方」工作表或活頁簿本身。

因應措施 

為了讓自動執行的副程式在 Microsoft Excel 中正確運作,必須包含在 Visual Basic 模組中。您必須在活頁簿中插入 Visual Basic 模組,然後在新模組中放置程式碼。若要插入 Visual Basic 模組:

  1. 在 Visual Basic 編輯器中的 [專案總管] 中,啟用包含有問題之程式碼的活頁簿。

  2. 在 [插入] 功能表上,按一下 [模組]。

插入新模組之後,將程式碼從原始位置剪下,並貼到 Visual Basic 模組中。 然後儲存活頁簿。

其他相關資訊

在 Excel 中,VBA 程式碼可以儲存在三個不同的位置:在 Visual Basic 模組、Visual Basic 類別模組中,以及「後方」工作表和活頁簿。若要編輯工作表或活頁簿的「後方」程式碼:

  1. 啟動 Visual Basic 編輯器 (按 ALT+F11) 。

  2. 在 [專案總管] 視窗中,您會看到類似下列專案:

        
         VBAProject (Book1)
         Microsoft Excel Objects
            Sheet1 (Sheet1)
            Sheet2 (Sheet2)
            Sheet3 (Sheet3)
            ThisWorkbook         
         Modules
             Module1

如果您按兩下其中一個工作表名稱或 ThisWorkbook,您可以在程式碼視窗中輸入程式碼。 Visual Basic 模組中未包含的這類程式碼會被視為工作表的「後方」或 ThisWorkbook .如果工作表或 ThisWorkbook 的「後方」儲存了Auto_Open、Auto_Close或其他自動執行的副程式,當您開啟或關閉活頁簿,或當您執行應導致副程式執行的動作時,可能無法正確運作。

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。