2

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 中,这两个常量在哪里是不可互换的?

4

1 回答 1

7

True是布尔值,vbTrue是长整数。在布尔值和长整数不可互换的任何地方,它们都不可互换。

于 2013-02-28T00:05:05.807 回答