我的代碼如下:IF 'AND' 和 'OR' 語句
If (InStr(1, "ALL", Itype) Or InStr(1, Uvar.Device, Itype) _
And (InStr(1, "ALL", Isec) Or InStr(1, Uvar.Sec, Isec)) _
And (InStr(1, "ALL", Idev) Or InStr(1, Uvar.Model, Idev)) Then Useline = "TRUE"
要在此展開位:
ITYPE是一個很長的字符串,例如 -
Itype = All, Apple, Pear, Orange
Isec = dog, cat, duck
Idev = tree, flower, plant
每個UVar.x是一個字,例如 -
UVar.Device = Apple
UVar.Sec = Cat
UVar.Model = tree
所以,如果ITYPE包含字符串 「全部」 或它包含UVar.Device 的價值和ISEC還包含字符串「所有「或者它包含UVar.Sec的值,並且IDev還包含字符串」All「或者它包含UVar.Model的值
然後我想要有if statement = true
。
上面的代碼似乎只要至少有一個值標準集合匹配就會返回真值。
因此,字符串IType,Idev和Isec都包含值「all」還是特定的用戶定義值?
opps你的權利,我在我的實際代碼中的額外括號必須在複製過程中將其刪除。我想我可能有GT = Find查找工作表函數混淆,這是字符串查找後跟字符串查看。歡呼的想法,我會檢查出來 – DevilWAH
是的,那是一個!它正在運行的Casue我假設它是我的「如果」,「And's」和「Or's」在錯誤的地方,但全面交換它的作品是完美的。親切的問候和非常感謝 – DevilWAH
VBA確實將任何非零值解釋爲真實。然而,imo,這種做法比好的編碼做法更加黑客。比較位置和0的值對我們人類來說更容易理解。我想這是對語法和語義的討論。 – Bobort