奇怪的是大于或小于结果

Cap*_*ABC 2 excel vba excel-vba

我面临一个奇怪的问题,真的不确定为什么:(

所以看看下面的内容(所有细胞形成为2 dp的百分比):

表http://im61.gulfup.com/xXpJZu.png

现在这里是Code1:

If Worksheets("Sheet1").Range("A2").Value < Worksheets("Sheet1").Range("B2").Value Then
MsgBox "Yes"
Else
MsgBox "Nope"
End If
Run Code Online (Sandbox Code Playgroud)

结果:正常工作并显示"Nope",因为"Text"一词不能小于数字/百分比.

代码2:

If Worksheets("Sheet1").Range("A2").Value > Worksheets("Sheet1").Range("B2").Value Then
MsgBox "Yes"
Else
MsgBox "Nope"
End If
Run Code Online (Sandbox Code Playgroud)

结果:无法正常工作并显示"是".这就是问题所在.我不明白为什么它认为"文字"这个词大于"10%"或"0.1".

我想了一下问题可能在于单元格的格式化,所以我将其更改为General,然后更改为Text但我仍然得到相同的结果.

另外,最令我惊讶的是,当我输入"<"符号时,它可以正常工作,但在使用">"符号时会给出错误的结果.

我错过了什么?

Bla*_*awk 7

首先需要注意的是的类型是很重要的Range(...).ValueVariant,你可以通过观察窗口进行确认.

然后在关系运算符的msdn VBA语言参考页面的底部找到答案:

•当两个操作数都具有声明类型的Variant时,前一个表中的规则有一个例外,其中一个操作数最初具有String类型的值,另一个操作数最初具有数值类型.在这种情况下,数字操作数被认为小于(并且不等于)String操作数,无论它们的值如何.