[英]Excel VBA: string comparison does not work
我正在嘗試將 activeSheet 代碼名稱與簡單字符串進行比較,但結果總是正確的。 我對此進行了調試,並且變量值不同。
Sub Button_Supprimer()
Dim a, b As String
a = CStr(ActiveSheet.CodeName)
b = "Sheet1"
If (a = b) Then:
frmSupprimer.Caption = "Supprimer un matériel"
'frmSupprimer.UserForm_Initialize ("Matériel")
frmSupprimer.Show
End
End Sub
結果並不總是正確的,只是代碼中沒有任何語句實際上是有條件的。
:
指令分隔符標記的存在通常應該被忘記,並留給您將從即時窗格 (Ctrl+G) 運行的最小化的即發即棄代碼。
通過使用冒號終止If {condition} Then
,您使條件表達式只是一個空指令。
沒有它,代碼將停止編譯,並且您會收到“沒有 End If 的 If 塊”編譯錯誤。
條件代碼塊的正確語法如下:
If {condition} Then
{conditional statements}
End If
請注意, End
指令本質上是一個用於終止程序執行的核選項; 全局變量被重置為其默認值,執行上下文終止:根據經驗,您想讓執行到達End Sub
語句並讓 VBA 運行時正常展開其調用堆棧: End
指令將所有內容都停止在其軌道上& 然后 - 你真的需要這樣做是非常非常罕見的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.