如何动态获取VBA变量动态类型(VBA基础知识)

来源:互联网 发布:思迅v7数据库链接 编辑:程序博客网 时间:2024/06/05 01:02
    在使用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)    ' 返回 2MyCheck = VarType(DateVar)    ' 返回 7MyCheck = 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的帮组文件和网上一些资料,这里仅仅是为了分享学习体会。
原创粉丝点击