Excel常量“True”的计算结果为True,常量“vbTrue”的计算结果为-1。我一直认为这些在VBA代码中可以互换,但事实并非如此。这两个常量产生不同结果的一个地方是设置CheckBoxes。将CheckBox.value设置为True会产生预期结果,但将其设置为vbTrue会使CheckBox保留为TripleState。
Sub setCkBox1()
CheckBox1.TripleState = False
CheckBox1.Value = vbTrue '<<<< the check mark is dimmed to show TripleState is True
Debug.Print CheckBox1.TripleState: Stop '<<<< even though it won't admit it
CheckBox1.Value = True '<<<< check mark is not dimmed
End Sub
所以我的问题是,VBA还有哪两个常量不可互换?
答案 0 :(得分:7)
True
是布尔值,vbTrue
是长整数。在Booleans和Longs不可互换的任何地方,它们都不可互换。