Chr*_*i.s 4 excel vba excel-vba
我想知道为什么下面的代码按照我的希望工作,考虑到我将一个字符串拆分成一个数组(也被定义为一个字符串),然后以算术(数字)方式进行比较.
Option Explicit
Sub test()
Dim str As String, arr() As String
Dim num As Integer, i As Integer
str = "12 9 30"
num = 20
arr() = Split(str, " ")
For i = LBound(arr) To UBound(arr)
If arr(i) > num Then
MsgBox (arr(i) & " is larger than " & num)
End If
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
由于预期msgBox中的if statement被激发,显示出:
我不知道/认为这样的比较可以像希望的那样工作,因为我基本上将字符串与整数进行比较.我假设有一些我不知道的东西,但在那种情况下,它是什么?
PS.关于哪个论坛要发帖,我有点怀疑,但我根据这个元问题做出了选择
有关答案,请参阅以下文章:https://msdn.microsoft.com/en-us/library/aa263418(v = vs.60).aspx
简而言之,如果将字符串与数字类型变量进行比较,则将字符串变量转换为double*类型.
*双基于从VB .NET比较运算符参考的信息(https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/operators/comparison-operators),VB 6.0,VBA和VBA .net不是一回事,但比较逻辑应该是相同的.