總是使用顯式選項
在 VBA 編輯器視窗中,從工具選單中選擇選項:
然後在編輯器選項卡中,確保選中需要變數宣告:
選擇此選項將自動將 Option Explicit
置於每個 VBA 模組的頂部。
小注意: 這對於目前尚未開啟的模組,類模組等是正確的。因此,如果你在啟用需求變數宣告選項之前已經檢視了例如
Sheet1
的程式碼,則不會新增Option Explicit
!
Option Explicit
要求在使用前必須定義每個變數,例如使用 Dim
語句。如果沒有啟用 Option Explicit
,VBA 編譯器將假定任何未識別的單詞為 Variant
型別的新變數,從而導致與列印錯誤相關的極難發現的錯誤。啟用 Option Explicit
後,任何無法識別的單詞都會導致丟擲編譯錯誤,表示有問題的行。
示例:
如果你執行以下程式碼:
Sub Test()
my_variable = 12
MsgBox "My Variable is : " & myvariable
End Sub
你將收到以下訊息:
你通過編寫 myvariable
而不是 my_variable
來表示錯誤,然後訊息框顯示一個空變數。如果你使用 Option Explicit
,則無法執行此錯誤,因為你將收到指示問題的編譯錯誤訊息。
現在,如果你新增正確的宣告:
Sub Test()
Dim my_variable As Integer
my_variable = 12
MsgBox "My Variable is : " & myvariable
End Sub
你將獲得一條錯誤訊息,指出 myvariable
的錯誤:
關於 Option Explicit 和 Arrays ( 宣告動態陣列 )的注意事項 :
你可以使用 ReDim 語句在過程中隱式宣告陣列。
使用 ReDim 語句時,請注意不要拼錯陣列的名稱
即使模組中包含 Option Explicit 語句,也會建立一個新陣列
Dim
arr()as Long
ReDim
ar()'creates new array "ar" - "ReDim
ar()" acts like "Dim
ar()"