我在帮助另一个问题,我意识到在VBA中使用Evaluate
对于-1
语句似乎返回TRUE
。
数据:
Column A Column B
A A
A B
C C
因此,如果我放=INT(A2=B2)
并向下拖动,则会得到我期望的1, 0, 1
。
但是,使用以下VBA,我得到-1, 0, -1
。
For i = 2 To 4
Cells(i, 4).Value = Evaluate(Int(Cells(i, 1) = Cells(i, 2)))
Next i
EVALUATE
为什么-1
使用TRUE
?
答案 0 :(得分:8)
VBA使用-1作为True值。 cf.使用1.的C和C ++。
-1在2的补码有符号整数类型中将所有位设置为1,因此选择具有一定意义。
选择可以追溯到DOS BASIC(以及其他BASIC,例如旧的BBC Micro上的BASIC),它早于1990年代中期仍在使用的组件对象模型。