string和数字值等于时返回true

为什么5.5 =“5.5”在VBA中返回true?

直接比较数值与vba中的string值是否可以接受?

这返回true

if 5.5 = "5.5" Then ... 

这可能会被视为基于意见而closures,但我会说是的,这是可以接受的。 例如,比较单元格值与数字或添加单元格值时,经常使用它。 IE如果我的单元格包含一个string,如abcde123,我只想使用123,我只能采取string的3个正确的字符,并直接使用它们。 如果你想要非常严格,你可以使用Cint(string),但我不认为这是必要的。

看起来VBA将string转换为Double并进行比较。 从比较运算符的页面

如果操作数是:一个数字和一个string

比较是:string转换为双精度和数字比较执行。 如果string不能转换为Double,则抛出InvalidCastException。