定义

变量(Variable)是一个命名的内存位置,用于保存可在代码执行期间更改的值。

以下是命名变量的基本规则:

  • 必须使用一个字母作为第一个字符
  • 不能在名称中使用空格,句点,感叹号或字符@$
  • 名称长度不能超过255个字符
  • 不能使用Visual Basic保留关键字作为变量名称

语法

在VBA中,建议在使用变量之前先声明变量。

声明语句

Dim 语句

Dim 声明语句可以置于过程中以创建过程级变量。也可以置于模块顶部,以创建模块级变量

1
Dim <variable_name> As <variable_type>

Public 语句

可以使用 Public 语句声明公共模块级变量,可以在项目中的任何过程中使用此公共变量。 如果在标准模块或类模块中声明公共变量,则还可以在引用声明该公共变量项目的任何项目中使用该变量。

1
Public <variable_name> As <variable_type>

Private 语句

可以使用 Private 语句声明私有模块级变量,私有变量仅能由相同模块中的过程使用。当在模块级别下使用时,Dim 语句等效于 Private 语句。

1
Private <variable_name> As <variable_type>

变量类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
类型:		数值范围
------------------------------
Boolean: True 或 False
Byte: 0 to 255
Currency: -922,337,203,685,477.5808 to 922,337,203,685,477.5807
Date: 100年1月1日 to 9999年12月31日
Decimal: +/- 79,228,162,514,264,337,593,543,950,335(无小数位), +/- 7.9228162514264337593543950335(28位小数)
Double: -1.79769313486231e + 308 to -4.94065645841247E-324, 4.94065645841247E-324 to 1.79769313486232e + 308
Integer: -32,768 to 32,767
Long: -2,147,483,648 to 2,147,483,647
LongLong: -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 (仅64位系统)
Object: 任何对象引用
Single: -3.402823E + 38 to -1.401298E-45, 1.401298E-45 to 3.402823E + 38
String: 1 to 65,400 个字符(固定长度), 0到20亿个字符(可变长度)
Variant: Double范围内任意数值, 可变长度String

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Demo()
Dim myName As String
myName = "chrisfang"

Dim num As Integer
num = 12345

Dim Today As Date
Today = DateValue("2020-2-9")

Debug.Print "myName:" & myName & vbCrLf & _
"num:" & num & vbCrLf & _
"Today:" & Today
End Sub

输出结果:

1
2
3
myName:chrisfang
num:12345
Today:2020/2/9