gpt4 book ai didi

VBA 关于双边不平等的政策?

转载 作者:行者123 更新时间:2023-12-03 03:49:34 25 4
gpt4 key购买 nike

我一直在尝试减少代码的长度,以便减少查看和调试的麻烦,我发现了这个奇怪的小事实:

Debug.Print 5<9<8 'returns "True"

一开始我以为这是因为它只检查了第一组,但后来我发现

Debug.Print 5<4<8 '*also* returns "True"

VBA 是否将这种三重不等式解释为 Or陈述?我无法想象为什么有人会选择 VBA 所做的解释,因为它几乎肯定是较少使用的选项,但我很难想到另一种解释。

还有,什么是快速又漂亮的写作方式If 5 < X < 8 Then (使用样本编号),而不必求助于无休止的 And语句,即If 5 < x And X < 8 Then ?对于一个语句来说是可以的,但是长度加倍会很快,特别是因为变量通常不命名为 X

编辑:好吧,这肯定不是 Or因为VBA也说Debug.Print 8<6<2True 。它到底在想什么?

最佳答案

我不知道,但我有根据的猜测是,它首先评估方程的左侧 (5<9),给出 TRUE。然后,它继续评估其余部分 (TRUE<8) 并隐式将 TRUE 转换为其整数值(我相信在 VB 中该值为 -1)。

-1<8 -> 正确

也适用于第二种情况,因为 FALSE 将转换为 0 和 0<8。

基本上,它与 bool 值到整数的隐式转换及其在 VBA 中各自的值有关。

关于VBA 关于双边不平等的政策?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43746626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com