在VBA脚本中如何获取对象或变量的数据类型?(附VBA示例代码)

2018-12-20 分类:EXCEL 阅读(19766)

在写VBA脚本时,有时候可能会需要去获取对象或变量的数据类型,一方面,可能是需要与其他类型的变量进行比较,另一方面,可能是需要根据变量的数据类型来确定变量的取值范围。

在VBA中,有不少基本的数据类型,如字符串(String)、整型(Integer)、货币型(Currency)、字节型(Byte)、日期型(Date)、变体型(Variant)等。这是VBA语言的基本数据类型。

另外,当一个变量只具有有限个取值的时候,还可以将变量定义为枚举类型。比如说,可以定义一个星期的枚举变量,保存周一~周日,或者定义一个性别的枚举变量,用来保存男、女、未知等性别。

其实,在VBA中,还支持用户自定义类型。也就是说,我们可以定义一个数据类型,它可以包含一个或多个基本数据类型或者其他的用户自定义类型。这有点类似于C++中的结构体。

而且 ,因为VBA语言与Excel文档深刻融合,当然还要支持一些Sheet、Workbook、Range等对象类型。

那么,VBA语言中有这么多的变量类型或者对象类型,我们如果获取它们的数据类型呢?

好在VBA提供了两个函数,可以返回变量或对象的数据类型。

(1)、TypeName()函数

用来返回变量或对象类型的字符串。

(2)、VarType()函数

用来返回用数字表示的变量或对象类型。不同的是,对于不同的对象,它统一返回对象类型,而不是像TypeName函数一样,返回不同的对象字符描述。

下面举个例子:

Sub 按钮1_Click()
    Dim sht As Worksheet
    Dim str As String
    str = "abc"
    Set sht = Worksheets("Sheet1")
    MsgBox TypeName(sht)
    MsgBox TypeName(str)
    MsgBox VarType(sht)
    MsgBox VarType(str)
End Sub

上面的示例代码返回:

Worksheet
String
9
8

对于VarType类型的返回值,列出如下表格供参考:

常数描述
vbEmpty0Empty(未初始化)
vbNull1Null(无有效数据)
vbInteger2整数
vbLong3长整数
vbSingle4单精度浮点数
vbDouble5双精度浮点数
vbCurrency6货币值
vbDate7日期
vbString8字符串
vbObject9对象
vbError10错误值
vbBoolean11Boolean 值
vbVariant12Variant(只与变体中的数组一起使用)
vbDataObject13数据访问对象
vbDecimal14十进制值
vbByte17位值
vbUserDefinedType36包含用户定义类型的变量
vbArray8192数组

赞(1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值