Roy*_*Roy 2 excel vba userform
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
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,VBA中的其他两个常量是不可互换的?
True是一个布尔值,vbTrue是一个Long.在Booleans和Longs不可互换的任何地方,它们都不可互换.