2

Excel 定数 "True" は True に評価され、定数 "vbTrue" は -1 に評価されます。私は常にこれらを VBA コードで交換できるものとして扱ってきましたが、そうではありません。これら 2 つの定数が異なる結果を生成する場所の 1 つは、CheckBox の設定です。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 の他のどこでこれら 2 つの定数を交換できないのでしょうか?

4

1 に答える 1

7

Trueブール値、vbTrueロングです。Boolean と Long が交換可能でない場所では、それらは交換可能ではありません。

于 2013-02-28T00:05:05.807 に答える