布尔,真和真和真来作为假?

这是否有一个原因是错误的? 以下是debugging时的VBA输出:

?A + B > X & A + B <= Y & C = 0 False ?A + B > X & A + B <= Y True ?C=0 True ?A + B > X True ?A + B <= Y True 

您遇到的问题是,&符号&是VBA中的string连接运算符。

要评估逻辑逻辑条件,您必须使用And运算符,如下所示:

 ?True And True 

根据MSDN ,算术(和&)在比较和逻辑运算符之前被评估。

所以A + B > X & A + B <= Y & C = 0 (A + B) > (X & A + B) <= (Y & C) = 0这可能不是你所期望的, (A + B) > (X & A + B) <= (Y & C) = 0