【VBA研究】变量定义的类型和实际赋值类型

来源:互联网 发布:如何获取扫描枪的数据 编辑:程序博客网 时间:2024/05/20 20:56

作者:iamlaosong

    VBA中变量可以先定义后使用,也可以不定义直接使用。如果模块前面加了Option Explicit语句,则变量必须先定义后使用。不过,实验发现,VBA对变量类型没有进行严格的管控,不管哪种情况,定义的类型和实际使用中赋值类型并没有什么关系,也就是说定义为integer的变量同样赋值字符串,反之也然。

这样的结果往往会在程序中产生歧义,导致错误的运行结果。例如下面的语句:

    Dim  Scan(3000), BarCode As String

    。。。

    BarCode = Cells(row2, 5)

    If Scan(row1) = BarCode Then

    。。。

这时BarCode保存值的类型由单元格的类型决定,特别是单元格的内容为数字时,BarCode保存值的可能是字符,也可能是数字,这很容易混淆,当你用BarCode和其它变量比较时,如果类型不对,即便数字相同,也会不等,所以编程中要特别注意,对这种可能引起混淆的情况,要强制进行转换,防止出错,即:

    BarCode = CStr(Cells(2, 5))


0 0
原创粉丝点击