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