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中还有哪些地方不能互换?

最佳答案

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

关于excel - vbTrue不是True,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15124840/

10-12 17:38