VBA- 数据类型
条评论基本数据类型
字符串(String)
必须用半角双引号。布尔型(Boolean)
赋值范围:True 和 False整数型
字节型(Byte)
可理解为 Integer 的简配版,用来表示 0~255 之间的整数。声明符号为$
整形(Integer)
用来表示 -32768~32768 之间的整数。声明符号为%
长整型(Long)
用来表示 -2147483648~2147483647 之间的整数。声明符号为&
浮点型
单精度浮点数(Single)
一般的小数单精度够用了。声明符号为!
双精度浮点数(Double)
双精度一般用于科学计算等对小数精确值很敏感的领域。声明符号为#
货币型(Currency)
(没有了解)声明符号为@
日期型(Date)
含有年月日时分秒。小数型(Decimal)
(没有了解)小数型数据类型只能在变体型中使用,不能声明一个变量为小数型。对象型(Object)
利用 Set 语句声明为对象型的变量可以赋值为任何对象的引用。
示例1
2Dim MyObj As Object
Set MyObj = xxx变体型(Variant)
无类型声明字符,变体型除定长字符串数据及用户定义类型外,可以包含任何类型数据,包括 Empty、Error、Nothing、Null 等特殊值,可以用VarType(变量名)
函数和TypeName(变量名)
函数来决定如何处理变体型中的数据。1
Dim MyName
VarType()函数返回常量值
常量 | 值 | 说明 |
---|---|---|
vbEmpty | 0 | 空(未初始化) |
vbNull | 1 | Null(不是有效数据) |
vbInteger | 2 | 整数 |
vbLong | 3 | 长整数 |
vbSingle | 4 | 单精度浮点数 |
vbDouble | 5 | 双精度浮点数 |
vbCurrency | 6 | 货币值 |
vbDate | 7 | 日期值 |
vbString | 8 | 字符串 |
vbObject | 9 | Object |
vbError | 10 | 错误值 |
vbBoolean | 11 | 布尔值 |
vbVariant | 12 | Variant(仅与变量的数组一起使用) |
vbDataObject | 13 | 数据访问对象 |
vbDecimal | 14 | 小数值 |
vbByte | 17 | 字节值 |
vbLongLong | 20 | LongLong 整数 (仅在 64 位平台上有效) |
vbUserDefinedType | 36 | 包含用户定义类型的变量 |
vbArray | 8192 | 此函数返回数组 (始终添加到另一个常量) |
注意:
- 如果传递对象并具有默认属性, 则 VarType (对象) 返回该对象的默认属性的类型。
- VarType 函数本身绝不返回 vbArray 的值。 它始终添加到其他某个值,以指示特定类型的数组。 例如,为整数数组返回的值的计算方式为 vbInteger + vbArray ,或 8194。
- 常量 vbVariant 仅与 vbArray 一起使用以指示 VarType 函数的参数是类型 Variant 的数组。
TypeName()函数返回字符串
返回字符串 | 变量 |
---|---|
objecttype | 对象类型 |
Byte | 位值 |
Integer | 整数 |
Long | 长整数 |
Single | 单精度浮点数 |
Double | 双精度浮点数 |
Currency | 货币 |
Decimal | 十进制值 |
Nothing | 不再引用对象的对象变量 |
Date | 日期 |
String | 字符串 |
Error | 错误值 |
Boolean | 逻辑值 |
Empty | 未初始化 |
Null | 无效对象 |
object | 对象 |
Unknown | 类型未知的对象 |
枚举类型
当一个变量只有几种可能的值时,可以将其定义为枚举类型。枚举类型的定义需要放在模块和窗体的声明部分
语法
1 | [Public | Private] Enum 类型名称 |
示例
1 | ' 定义 |
用户定义类型
在 VBA 中还可以使用 Type 语句来定义自己的数据类型,其格式如下:
语法
1 | Type 类型名 |
自定义的数据类型的定义必须放在模块的声明部分中。
参考文献
[1]L 罗乐.VBA 的数据类型[EB/OL].http://www.360doc.com/content/18/0603/19/30583536_759387607.shtml,2018-06-03.
[2] 凌霄百科.VBA 学习 - 语法基础[EB/OL].https://www.bilibili.com/read/cv2467437/,2019-04-16.