VBA 程式碼放在工作表或工作簿後面,可能無法在 Excel 中使用

症狀

在 Office Excel Microsoft,Microsoft Visual Basic for Application (VBA) 巨集程式碼如果「藏在」工作紙或工作簿後面,可能無法正常運作。

原因

若以下兩個條件皆成立,則會發生:

  • 相關程式碼包含在自動執行的子程式中,例如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 模組中的程式碼被視為「在工作表後方」或
這本工作手冊。

如果Auto_Open、Auto_Close或其他自動執行的子程式被儲存在工作表或 ThisWorkbook 的「後方」,當你開啟或關閉工作簿,或執行應該讓子程式執行的動作時,它可能會無法正常運作。