计算机以不同的方式储存不同类型的数据。存储数字的方式和存储文本的方式有很大的不同。不同类型的数字,如整数和小数的存储方式也不相同。VBA可以不声明变量的数据类型,但是声明变量的数据类型可以使代码更有效率。VBA的数据类型看下图:
如果不声明变量的数据类型,那么变量默认数据类型为Variant类型。下面代码,a开始是Variant类型,然后每执行一条代码,数据类型随值改变,数据类型由电脑自动判断识别。数据类型变化依次为:
Variant—Integer—String—Date—Double
Sub 类型()
Dim a as Variant 'as Variant写不写a都是Variant类型
a = 1
a = '这个锅我不背'
a = #7/1/2017#
a = 168.888
End Sub
如果一开始声明变量a的数据类型为Integer,则代码运行至第③句出错,提示数据类型不匹配。因此,一旦声明的变量的数据类型,该变量就只能用来存储该数据类型的信息,除非改变其数据类型。如将数值改为文本数字等操作。
Sub 类型()
1: Dim a As Integer
2: a = 1
3: a = '这个锅我不背'
4: a = #7/1/2017#
5: a = 168.888
End Sub
声明变量数据类型中一个常常误解的地方是:
Dim a, b, c As Integer
将上面的变量a,b,c都认作是Integer整型数据类型。但实际上a,b是Variant 数据类型。
要将abc同时声明为Integer,如下写:
Dim a As Integer
Dim b As Integer
Dim c As Integer
当然也可以将写在同一行
Dim a As Integer, b As Integer, c As Integer
声明变量,应当遵循一些规则:最重要的一个原则是,别弄那些乱七八糟的符号字符来声明变量。
声明变量,应该让人一看名字就能Get到变量代表神马信息。
如,声明一个关于销售额的变量,名称可以用X,Y,Z,SalesAmount,Sales_Amount......但显然,最后两个意思比较明显易懂。
此外,一些VBA中保留的关键字是不能作为变量的,如Dim 、Sub......
再如上面的变量销售额,其数据类型是Double,因此也可以在其前面写为:dSalesAmount,d代表数据类型double。具体的命名规则因人而异,自行总结。
联系客服