2013-07-24 44 views
2

簡單的問題在這裏。
我目前在我的程序使用此:Excel - VBA:簡化這個If語句比較單元格與單詞

If LCase(inp_rng.Offset(1, 0).Value) = "street" Or LCase(inp_rng.Offset(1, 0)) = "ave." Then 
score = score - 50 
End If 

這顯然是不乾淨的,但我能找到一種方法把它放在只有一句話。什麼是寫這樣的事情的編程方式:

If LCase(inp_rng.Offset(1,0).Value = ("street", "ave.", "road", "...", etc.) Then 
'do something 
End If 

在此先感謝!

回答

2

您可以使用Select Case語句來代替:

i = LCase(inp_rng.Offset(1,0).Value 
Select Case i 
    Case "street", "ave.", "road" 
     'do something 
    Case Else 
     'do something 
End Select 

或者,你可以填充陣列中的所有可能的答案和搜索陣列的比賽。

+4

具有相同結果的情況可以用逗號分隔,例如。案例「街道」,「大道」,「道路」進一步簡化了這個例子。 – RowanC