数据类型是变量的特征,它决定了变量可以包含哪种数据。 数据类型包括下表中的类型以及用户定义类型和特定的对象类型. 文本类型可以说是最常用的数据类型。实际中,几乎所有的数据均是文本类型。因此理解好文本是学习 VBA 的基础。 类型 说明 数据范围 String 文本类型 0 至 20亿字符 首先,声明一个文本类型变量,String是类型标识符,语法如下: Dim name As String VBA 中,文本需使用英文双引号表示。 name = "Zhang San" 如果把数字两端加上双引号,它会变成文本类型,不再表示数字 name = "101" 可以使用单元格内的文本,给文本类型变量赋值。 name = Range("A1") 与 Excel 提供的文本函数一样,VBA 也提供多种文本函数,可直接在程序中使用,包括: 每个函数的用法,在「内置函数」一章中详细介绍。 数字类型是第二个基础数据类型。在写 VBA 代码时,应根据具体的数字大小,选择合适的数字类型。 如果小数字使用大范围数字类型存储,会浪费计算机内存;如果大数字使用小范围的数字类型存储,VBA 会自动转换成对应小范围数字,导致数字丢失精度。 VBA 中的数字类型包括如下几种。 类型 说明 数据范围 Byte 字节 0 至 255 Integer 整数 -32,768 至 32,767 Long 长整数 -2,147,483,648 至 2,147,483,648 Single 单精度浮点数 在表示负数时: -3.402823E38 ~ -1.401298E-45 在表示正数时: 1.401298E-45 ~ 3.402823E38 Double 双精度浮点数 在表示负数时: -1.79769313486231E308 ~ -4.94065645841247E-324 在表示正数时: 4.94065645841247E-324 ~ 1.79769313486231E308 Currency 货币 -922,337,203,685,477.5808 至 922,337,203,685,477.5807 Decimal 定点数 未放置定点数: +/- 79,228,162,514,264,337,593,543,950,335 放置定点数: +/- 7.9228162514264337593543950335 其中,Integer、Long、Double是常用到的数字类型。 与文本相似,声明数字类型,使用如下语句: Dim age As Integer 以上定义一个岁数变量,使用基本的 Integer 整数类型即可。 数字类型变量可以像数字一样,参与各类算数运算: age = 3 age * 2 + 10 ‘-> 16 更多数字类型相关的内容,将在以后的教程中详细介绍。 逻辑类型只有两个值,True 和 False,即真与假。 类型 说明 数据范围 Boolean 逻辑值 True 或 False 逻辑值虽然只有两个,但是在程序中有着广泛的应用。VBA 中判断语句中,经常能用到逻辑值。 首选,声明一个逻辑变量,使用如下语句: Dim isPass As Boolean 给逻辑变量赋值时,可以直接使用逻辑值,也可以使用返回逻辑值的表达式。 isPass = False isPass = 70 >= 60 VBA 中的日期和时间使用数字表示,整数部分代表日期,小数部分代表时间。 声明日期类型变量,使用如下语句: Dim birthday As Date Dim time As Date 给日期变量赋值时,可以直接把日期放置在两个 # 之间赋值,也可以使用数字,还可以把日期作为文本赋值: birthday = #2018-1-1# birthday = 43101 birthday = "2018-1-1" time = #12:00:00# time = 0.5 time = "12:00:00" Variant 类型是一种通用类型,可以表示任何一种类型的数据。它也是声明变量未指定数据类型时的默认类型。 虽然 Variant 类型方便,但是相应的,占用更大的内存空间,也会影响程序运行效率。因此建议,在明确知道数据时何种类型时,指定数据类型;如果数据类型是可变的或不明确,使用 Variant 类型。 对象型是VBA中另一种特殊的数据类型。有点类似于其它高级编程语言中的“对象”,因为它们都有自己的属性与方法,但也仅限于在这两个方面上类似。 枚举型数据就我目前而言使用得并不多,几乎没有使用过。但它可以在某些特定场合下比较有用,因此在这里也提一下。 当一个变量只有几种可能的值时,可以定义为枚举类型。枚举就是将变量的值逐一列出,属于该枚举型的变量只能取列举的某一个值。文本类型
数字类型
逻辑类型
日期和时间类型
Variant 类型
对象型 Object
枚举型