首页 > 解决方案 > 如何区分VBA中变体数组中的字符串和整数

问题描述

我需要判断变体数组元素是字符串形式的数字还是整数形式的数字。当我运行这个子时:

Public Sub arrTest1()

    Dim fldValues() As Variant

    fldValues = Array("1", 1)
        
    For i = LBound(fldValues) To UBound(fldValues)
        Debug.Print fldValues(i), IsNumeric(fldValues(i))
    Next i

End Sub

我在即时窗口中得到这个结果:

1             True
 1            True

由于缩进,我假设 VBA 知道区别,但两者都显示为数字。我如何区分它们?

标签: arraysvbams-access

解决方案


一种选择是TypeName

Debug.Print fldValues(i), TypeName(fldValues(i))

输出:

1             String
 1            Integer

另一个(更好的)选择是VarTypeVarType(fldValues(i))会返回:

1              8 
 1             2 

其中8对应vbString2对应vbInteger


推荐阅读