这是我正在阅读的一本书的片段:
Sub VariantDemo()
MyVar = True
MyVar = MyVar * 100
MyVar = MyVar / 4
MyVar = "Answer: " & MyVar
MsgBox MyVar
End Sub
在答案框中显示“答案:-25”?,但为什么我们有减号?我直接在Excel中计算数值时,数值为25。
答案 0 :(得分:0)
在 VBA 中,在大多数其他语言中,False
的数值是 0
,任何其他值都是 True
。出于约定和方便的考虑,True
的值被强制转换为 -1
的有符号整数,因此在您的示例中为 -1*100/4 = -25
。
对于所有有符号整数,一个用 1
位填充的值,例如 11111111
等于 -1
。这是因为 two's complement 可以最大化第一位是符号位的类型的存储。