- 关 键 词:
- visual basic
在使用VBA变量的某些时候,我们需要获知变量的存储范围,所以如何获取变量类型是一个重要点。通过变量类型,我们就很容易的获取它的字节数,从而却动它的存储范围,就象C/C++所用的sizeof(var_type)那样。那么摆在初学者面前的头一个问题就是如何获得变量类型呢?
幸运的是,VBA提供了VarType(varname)函数来对应变量的数据类型。请看下表:
返回一个 Integer,指出变量的子类型。
语法
VarType(varname)
必要的 varname 参数是一个 Variant,包含用户定义类型变量之外的任何变量。
返回值
| 常数 | 值 | 描述 | |||
|---|---|---|---|---|---|
| vbEmpty | 0 | Empty(未初始化) | |||
| vbNull | 1 | Null(无有效数据) | |||
| vbInteger | 2 | 整数 | |||
| vbLong | 3 | 长整数 | |||
| vbSingle | 4 | 单精度浮点数 | |||
| vbDouble | 5 | 双精度浮点数 | |||
| vbCurrency | 6 | 货币值 | |||
| vbDate | 7 | 日期 | |||
| vbString | 8 | 字符串 | |||
| vbObject | 9 | 对象 | |||
| vbError | 10 | 错误值 | |||
| vbBoolean | 11 | Boolean 值 | |||
| vbVariant | 12 | Variant(只与变体中的数组一起使用) | |||
| vbDataObject | 13 | 数据访问对象 | |||
| vbDecimal | 14 | 十进制值 | |||
| vbByte | 17 | 位值 | |||
| vbUserDefinedType | 36 | 包含用户定义类型的变量 | |||
| vbArray | 8192 | 数组 | |||
注意 这些常数是由 Visual Basic 为应用程序指定的。这些名称可以在程序代码中到处使用,以代替实际值。
说明
VarType 函数自身从不对 vbArray 返回值。VarType 总是要加上一些其他值来指出一个具体类型的数组。常数 vbVariant 只与 vbArray 一起返回,以表明 VarType 函数的参数是一个 Variant 类型的数组。例如,对一个整数数组的返回值是 vbInteger + vbArray,或 8194。如果一个对象有缺省属性,则 VarType (object) 返回对象缺省属性的类型。
非常好,那么如何使用呢?这里举几个例子:VarType 函数示例
本示例使用 VarType 函数决定变量的次类型(subtype)。
Dim IntVar, StrVar, DateVar, MyCheck '初始化变量。IntVar = 459: StrVar = "Hello World": DateVar = #2/12/69#MyCheck = VarType(IntVar)'返回2。MyCheck = VarType(DateVar)'返回7。MyCheck = VarType(StrVar)'返回8。 此外,附上一些类型大小的说明:
数据类型 存储空间大小 范围
Byte 1 个字节 0 到 255
Boolean 2 个字节 True 或 False
Integer 2 个字节 -32,768 到 32,767
Long
(长整型) 4 个字节 -2,147,483,648 到 2,147,483,647
Single
(单精度浮点型) 4 个字节 负数时从 -3.402823E38 到 -1.401298E-45;正数时从 1.401298E-45 到 3.402823E38
Double
(双精度浮点型) 8 个字节 负数时从 -1.79769313486231E308到-4.94065645841247E-324;正数时从4.94065645841247E-324 到 1.79769313486232E308
Currency
(变比整型) 8 个字节 从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807
Decimal 14 个字节 没有小数点时为 +/-79,228,162,514,264,337,593,543,950,335,而小数点右边有 28 位数时为 +/-7.9228162514264337593543950335;最小的非零值为 +/-0.0000000000000000000000000001
Date 8 个字节 100 年 1 月 1 日 到 9999 年 12 月 31 日
Object 4 个字节 任何 Object 引用
String
(变长) 10 字节加字符串长度 0 到大约 20 亿
String
(定长) 字符串长度 1 到大约 65,400
Variant
(数字) 16 个字节 任何数字值,最大可达 Double 的范围
Variant
(字符) 22 个字节加字符串长度 与变长 String 有相同的范围
用户自定义
(利用 Type) 所有元素所需数目 每个元素的范围与它本身的数据类型的范围相同。
其中的Variant是个很特殊的数据类型,它能表示除固定长度之外的所有值,并可以通过VarType来返回其数据子类型。其语法如下:
VarType(varname)
必要的 varname 参数是一个 Variant,包含用户定义类型变量之外的任何变量。
文中部分内容拷贝于VB的帮组文件和网上一些资料,这里仅仅是为了分享学习体会。进入讨论组讨论。
相关专题
- (0次浏览)关闭vb6.0时弹出内存冲突错误解决办法
- (0次浏览)VBA基础:如何动态获取VBA变量动态类型
- (0次浏览)揭开神秘面纱 如何用Visual Basic编写病毒
- (0次浏览)vb实现IP设置
- (0次浏览)VB Shell调用后 等待程序运行结束



