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