我遇到了if語句,即使它的計算結果爲false,它的行爲就好像它是真的,我無法弄清楚發生了什麼。代碼如下:如果聲明仍然執行條件爲假時
If (k = j) Then
Debug.Print "Code being stupid"
ReDim pinInfo(UBound(textConn))
For i = 0 To UBound(textConn)
For j = 0 To UBound(colConn)
If (StrComp(textConn(i), colConn(j), vbBinaryCompare) = 0 _
And StrComp(textPos(i), colPos(j), vbBinaryCompare) = 0) Then
pinInfo(i) = textConn(i) & "," & textPos(i) & "," & label(i) & "," & colScl(j)
'Debug.Print pinInfo(i)
Exit For
End If
Next j
Next i
Else
Debug.Print "k <> j"
MsgBox "The number of shapes representing the wire ID does not equal the number of shpaes representing the wire color."
Exit Sub
End If
j和k都是整數。在這個程序中,他們應該始終是平等的。我故意拋出輸入,以使它們不是,但即使語句評估爲false,它仍然像返回true一樣。下面的圖片是我執行後看到的截圖。如您所見,它顯示條件爲false,但執行第一個打印語句並且不顯示消息框。
單個'='標記是比較運算符嗎? –
在VBA中是的。 '=='是錯誤的。 – cyboashu
只需保存您的工作簿。重新打開並重試。你仍然得到這種行爲? – cyboashu