簡體   English   中英

如何檢查IF語句中的值列表?

[英]How to check against a list of values in an IF statement?

我想寫一個像這樣的IF語句:

if var [is any of 1,4,5,6,12] then do stuff

但我不知道VBA中的語法,除了:

if var=1 or var=4 or var=5...

這看起來有點笨拙。 有不同的方式嗎?

您可以使用Select Case語句:

select case var
case 1,4,5,6,12
  'do something
case else
  'alternative
end select

您可以創建一個數字列表,然后在for循環中進行比較:

dim newNumber as Integer
dim compareList as new List Of(int)

for count as integer = 0 to compareList.count - 1
    if newNumber = compareList(nCount)
       'Do Stuff
    end if
next

這是我喜歡做的一種簡單的方法,但是如果列表非常大/你想在“if”循環中執行大量代碼,則可能會增加性能。

我對'派對'有點遲了但是怎么樣:

If InStr(1, ",1,5,8", "," & lVal1, vbTextCompare) > 0 Then

檢查'lVal1'是否等於1,5或8。

If InStr(1, ",6,8,10,12", "," & lVal2, vbTextCompare) = 0 Then

檢查'lVal2'是否不等於6,8,10,12。

逗號分隔符很重要,因為如果沒有它們,在第一個示例中,如果'lVal'能夠獲取其中一個值,則'15'或'58'或'158'將全部匹配。

如果要檢查的值可能存在任何歧義,則需要注意所使用的分隔符。

同樣,使用您將遇到的值范圍的知識,可以刪除第一個字符串中的前導分隔符的笨拙以及將分隔符連接到搜索值的前面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM