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