比较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
关键字。