在具有多個條件的IF
聲明中遇到了一個奇怪的問題。 最後一個工作版本是這樣的:VB6多重IF聲明離奇問題
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,所以所有位你應該檢查Instr的結果是否大於0.這將返回0或-1,你的表達式會更加正確 –
我看到了這個,但是在這種情況下,vb6將任何值大於0的值隱式轉換爲真 –