关闭

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

1517人阅读 评论(0) 收藏 举报
分类:

作者: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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1634669次
    • 积分:14774
    • 等级:
    • 排名:第1030名
    • 原创:275篇
    • 转载:69篇
    • 译文:0篇
    • 评论:189条
    最新评论