IF
ステートメントで複数の条件で奇妙な問題が発生しました。VB6 multiple IF statement奇妙な問題
If VAR1 = "SCRT" And InStr("|TEC|FIN|", "|" & VAR2 & "|")) And VAR3 = 1 Then
そして今、私は声明に別の条件を実装する:この値では
If VAR1 = "SCRT" And InStr("|TEC|FIN|", "|" & VAR2 & "|")) And (VAR3 = 1 or VAR3 = 15) Then
を: VAR1: ""(空の) VAR2: "FIN" 最後の作業バージョンは次のようになります VAR3:1
デバッグ時に問題なく動作するコードです。奇妙なことがコンパイルされ、実稼働環境で実行されているが、最初の条件が正常でなくても条件が満たされている。
すでにチェックする値を記録しています。 運用環境には同じファイル(ライブラリ)があります。
条件のほかに変更されたのは、このモジュールの最初のOption Explicitです。
ありがとうございます!
'On Error Resume Next'と' VAR1'はヌルですか? – wqw
Instrは一致の位置を返します(1または5または0のいずれか).And演算子はVB6でビット単位で、TRUEの値は-1です。 –
私はこれを見ましたが、この場合、vb6は0より大きい値を暗黙的に0に変換します。 –