2013-07-24 46 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