比较vba中的十进制值时出错

比较vba中的十进制值时出错,vba,Vba,我得到了下一个密码: aux = 97.8000030517578 Select Case aux Case aux < 100 Debug.Print "Menor que 100" Case aux >= 97 And aux < 100 Debug.Print "Medio" Case aux < 97 Debug.Print "malo" End Select aux=97.80000030517578 选择案例辅助 案例aux=97和

我得到了下一个密码:

aux = 97.8000030517578

Select Case aux
Case aux < 100
    Debug.Print "Menor que 100"
Case aux >= 97 And aux < 100
    Debug.Print "Medio"
Case aux < 97
    Debug.Print "malo"
End Select
aux=97.80000030517578
选择案例辅助
案例aux<100
调试。打印“Menor que 100”
案例aux>=97和aux<100
调试。打印“Medio”
例aux<97
调试。打印“malo”
结束选择

而且它在select中没有完成任何条件,因此它不会打印任何内容。有什么想法吗,帮帮忙?

我做了改变:

aux = 97.8000030517578
Select Case aux
        Case 99 to 100
            Debug.Print "Menor que 100"
        Case 97 to 98.999
            Debug.Print "Medio"
        Case aux < 97
            Debug.Print "malo"
    End Select
aux=97.80000030517578
选择案例辅助
案例99至100
调试。打印“Menor que 100”
案例97至98.999
调试。打印“Medio”
例aux<97
调试。打印“malo”
结束选择
我不知道还有没有别的办法。

这里有另一个办法:

aux = 97.8000030517578
Select Case True
Case aux >= 99 And aux < 100: Debug.Print "Menor que 100"
Case aux >= 97 And aux < 99: Debug.Print "Medio"
Case aux < 97: Debug.Print "malo"
End Select
aux=97.80000030517578
选择Case True
案例aux>=99和aux<100:调试。打印“Menor que 100”
案例aux>=97和aux<99:调试。打印“Medio”
案例aux<97:调试。打印“malo”
结束选择
在第一次尝试中,您实际上不是在测试
aux
,而是在测试语句。

因此,最好选择该语句为
True

的情况,您需要将
case aux<97
更改为
case is<97
,以便正确评估第三次测试。尽管如此,在整理前两个条件方面仍然做得很好。:)这太棒了,我从来没有想过这样使用case语句。@DanDonoghue AFAIK这是将
case
语句与
运算符一起使用的唯一方法。如果您理解逻辑,这是一个非常方便的提示。在
Case
语句中使用此运算符时,需要使用
Is
关键字。