作者: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))
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-09 19:24:31