VBA的數據類型
- 布爾型Boolean
- 整數:整數型Integer、字節型Byte、長整數型Long
- 小數:小數型Decimal、單精度浮點型Single、雙精度浮點型Double、貨幣型Currency
- 字符串型Sting(定長和不定長)
- 日期型Date
- 對象型Object
- 變體型Variant
- 用戶自定義類型
聲明變量
Dim 變量名 As 數據類型
Private 變量名 As 數據類型 聲明一個私有變量
Public 變量名 As 數據類型 聲明一個公有變量
Static 變量名 As 數據類型 聲明一個靜態變量,當程序結束后,,靜態變量會保持原值不變
變量名必須以字母(或者漢字開頭),不能包含空格、句號、感嘆號、@、&、$和#等,最長不超過255個字符
Dim txt As String '聲明一個String類型的變量txt Private txt As String '聲明一個私有String類型的變量txt Public txt As String '聲明一個公有String類型的變量txt Static txt As String '聲明一個靜態String類型的變量txt
變量賦值
給數據類型變量賦值
變量名稱 = 要存儲的數據 或者 Let 變量名稱 = 要存儲的數據
'exp:把數值3000存儲到變量IntCount中
Dim IntCount As Integer '定義變量 IntCount = 3000 '給變量賦值,或者Let IntCount = 3000
給對象類型變量賦值
Set 變量名稱 = 要存儲的數據
Dim sht As Worksheet '定義一個工作表對象sht Set sht = ActiveSheet '將活動工作表賦值給變量sht
Sub test() Dim IntCount As Integer '定義一個變量 IntCount = 4000 '給變量賦值 Range("A1").Value = IntCount '把變量值寫入活動工作表的A1中 End Sub
Sub test2() Dim sht As Worksheet Set sht = ActiveSheet sht.Range("A1").Value = "我在學習VBA" End Sub
使用變量類型聲明符定義變量類型
定義一個String類型: Dim 變量名稱$ (Dim 變量名稱 As String) 定義一個Integer類型:Dim 變量名稱% (Dim 變量名稱 As Integer) 定義一個Long類型: Dim 變量名稱& (Dim 變量名稱 As Long) 定義一個Single類型:Dim 變量名稱! (Dim 變量名稱 As Single) 定義一個Double類型: Dim 變量名稱# (Dim 變量名稱 As Double) 定義一個Currency類型:Dim 變量名稱@ (Dim 變量名稱 As Currency)
聲明變量是可以不指定變量類型(變體型Variant,可以存儲任意類型變量)
Dim 變量名稱
變量按作用域分類
本地變量:在一個過程中使用Dim或者Static聲明變量作用域為本過程,稱為本地變量(單個過程)
'第一個程序 Sub test_01() Dim a$ a = "我是一個變量" End Sub '第二個程序 Sub test_02() MsgBox a '輸出空 End Sub
模塊級變量:在模塊的第一個過程之前使用Dim或者Private聲明變量,作用域為聲明變量語句所在的模塊中的所有過程,稱為模塊級變量(單個模塊)
Dim a$ Private b$ Sub test_01() a = "我是一個變量" b = "我也是一個變量" MsgBox a MsgBox b End Sub
公共變量:在一個模塊的第一個過程之前使用Public聲明變量,作用域為所有模塊,稱為公共變量(所有模塊)
Public b$ Sub test_01() b = "我也是一個變量" MsgBox b End Sub