簡體   English   中英

VBA中的True和msoTrue有什么區別?

[英]What is the difference between True and msoTrue in VBA?

我正在研究一個帶有一些隱藏/顯示形狀的 VBA 代碼的模型:

Worksheets("Sheet1").Shapes("shape1").Visible = msoTrue

以前的開發人員在整個模型中使用 msoTrue,而不是我在此類應用程序中通常使用的 True。

我試圖了解 True 和 msoTrue 之間的區別,並想知道我是否應該使用其中一個。 我知道兩者都等於-1。

msoTrue是一個計算結果為 -1 的常數。 在 VBA 中,它將是Long類型。

TrueBoolean類型。 當轉換為Long時,它的計算結果也為 -1。

嘗試這個:

Debug.Print msoTrue '---> -1
Debug.Print True '---> True
Debug.Print Clng(True) '---> -1

在條件測試中使用msoTrue而不是True有點奇怪,但是 -1、 msoTrueTrue都將是一個真實的條件。

我應該補充一點, Shape對象的Visibility屬性不是Boolean類型,它是枚舉msoTriStateLong 如果您的問題具體且僅與Shapes相關,那么,是的,更正確的語法是msoTrue

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM