宣告變數
要在 VBA 中顯式宣告變數,請使用 Dim
語句,後跟變數名稱和型別。如果在未宣告的情況下使用變數,或者未指定型別,則將為其分配 Variant
型別。
在模組的第一行使用 Option Explicit
語句強制在使用之前宣告所有變數(請參閱始終使用 Option Explicit
)。
強烈建議始終使用 Option Explicit
,因為它有助於防止拼寫錯誤/拼寫錯誤並確保變數/物件保持其預期型別。
Option Explicit
Sub Example()
Dim a As Integer
a = 2
Debug.Print a
'Outputs: 2
Dim b As Long
b = a + 2
Debug.Print b
'Outputs: 4
Dim c As String
c = "Hello, world!"
Debug.Print c
'Outputs: Hello, world!
End Sub
可以使用逗號作為分隔符在一行上宣告多個變數,但每個型別必須單獨宣告,否則它們將預設為 Variant
型別。
Dim Str As String, IntOne, IntTwo As Integer, Lng As Long
Debug.Print TypeName(Str) 'Output: String
Debug.Print TypeName(IntOne) 'Output: Variant <--- !!!
Debug.Print TypeName(IntTwo) 'Output: Integer
Debug.Print TypeName(Lng) 'Output: Long
變數也可以使用資料型別字元字尾($%&!#@)宣告,但是越來越不鼓勵使用它們。
Dim this$ 'String
Dim this% 'Integer
Dim this& 'Long
Dim this! 'Single
Dim this# 'Double
Dim this@ 'Currency
其他宣告變數的方法是:
Static
喜歡:Static CounterVariable as Integer
當你使用 Static 語句而不是 Dim 語句時,宣告的變數將在呼叫之間保留其值。
Public
喜歡:Public CounterVariable as Integer
公共變數可以在專案的任何過程中使用。如果在標準模組或類模組中宣告瞭公共變數,那麼它也可以在任何引用宣告公共變數的專案的專案中使用。
Private
喜歡:Private CounterVariable as Integer
私有變數只能由同一模組中的過程使用。
來源和更多資訊: