比较字符串数组VBA

时间:2018-04-18 08:44:31

标签: arrays excel vba excel-vba

我有一个二维字符串数组。在字符串数组中有一些字符串和一些整数。我想比较阵列的两个位置。

示例:

If StringArray(1, 5) > StringArray(1, 6) Then
    MsgBox "Is first number is bigger"   
End if

我的调试器说:

StringArray(1,5) = 150
StringArray(1,6) = 3 
StringArray(1, 5) > StringArray(1, 6) = False

有人有想法,为什么结果是假的? StringArray(1, 5)肯定更大。可能是什么问题呢?它是否与数组类型有关,如何在不为2个值创建新的整数数组的情况下更改它?

1 个答案:

答案 0 :(得分:1)

如您所述,您的数组类型为String 当您将StringArray(1,5)StringArray(1,6)进行比较时,实际上是在比较字符串。

在您的情况下,您将1503 比较为字符串。因此结果是错误的,因为“3”是> “1”而不是副verca。

为了将它们作为整数进行比较,您需要先将它们转换为整数。像这样:

If Val(StringArray(1, 5)) > Val(StringArray(1, 6))

还有其他方法,例如:CInt