1
對你們所有人來說都是美好的一天。判別在VBA中沒有價值和雙倍爲0的double
我有一個關於VBA一個小問題,以及變量初始化:
我有一個類,財產
Public myVal As Double
兩個腳本:
Dim myObject As new MyClass
myObject.myClass = 0
Debug.Print myObject.myClass
Dim myObject As new MyClass
Debug.Print myObject.myClass
給出相同的輸出: 0.
有沒有什麼辦法可以告訴兩個零(Value has been ass已分配爲0 - 未分配任何值,因此默認情況下輸出爲0)分開?
方問題: 如果我聲明
Public myVal As Variant
我沒有問題,我可以使用的IsEmpty(myClass.myVal)。
由於人們通常更喜歡使用Double over Variant,所以我認爲它有一個缺點。它是什麼?
感謝您的幫助:)
馬克西姆
變通常是不可取的,因爲它使用額外的內存,可能需要指針解引用,並且可能攜帶導致運行時錯誤的意外類型。但是,它確實具有測試未初始化值的優點。編程中這類問題的一個典型方法是簡單地將數據初始化爲程序定義的「非法值」,如-1,然後檢查這種情況。但是,如果您的Double可以合法賦值,包括-1,這顯然不起作用! – Mikegrann