Excel – select具有多个条件的案例
下面的代码是我的全部Sub的一个摘录,只是因为它会更容易阅读这里。 我需要为一些案例添加更多的标准,我不知道如何实现。
总结一下这是干什么的,如果K列有一个以B,M或D开头的单词,它就会运行一组情况。 如果K列有一个以A开头的单词,它将运行一组不同的案例。 再次,这是工作。 但在其中一些情况下,我需要它有更多的标准,而不是只看O列。
例如,在第一种情况下,需要检查“伊利诺伊大学”和“UofI”,但是还需要检查P列“Urbana”和“Chicago”的值。 我怎样才能做到这一点?
Sub Test4() Dim LastRow As Long Dim i As Long LastRow = Range("O" & Rows.Count).End(xlUp).Row For i = 84 To LastRow If Range("K" & i) Like "B*" Or Range("K" & i) Like "M*" Or Range("K" & i) Like "D*" Then Select Case Range("O" & i) Case "University of Illinois", "UofI" Range("N" & i) = "1234" End Select End If If Range("K" & i) Like "A*" Then Select Case Range("O" & i) Case "New York University", "NYU" Range("N" & i) = "5075" End Select End If Next i End Sub
Select Case Range("O" & i) Case "University of Illinois", "UofI" Select Case Range("P" & i") Case "Urbana", "Chicago" Range("N" & i) = "1234" End Select End Select
这足够吗? 还没有testing过,所以请反馈,所以我们可以让你到一个解决scheme
在正常情况下, Select Case
语句不适用于Like
运算符。 但是,有一个解决方法。
为了Select Case
与Like
一起工作,我们将添加一个True
expression式。
码
Sub Test4() Dim LastRow As Long Dim i As Long LastRow = Range("O" & Rows.Count).End(xlUp).Row For i = 84 To LastRow Dim wordStr wordStr = Range("K" & i) ' adding True to enter the below Case with Like Select Case True Case wordStr Like "B*", wordStr Like "M*", wordStr Like "D*" Select Case Range("O" & i) Case "University of Illinois", "UofI" Range("N" & i) = "1234" End Select Case wordStr Like "A*" Select Case Range("O" & i) Case "New York University", "NYU" Range("N" & i) = "5075" End Select End Select Next i End Sub
既然你需要抓住“以…开头”的话,你可以这样下去
Sub Test4() Dim LastRow As Long, i As Long LastRow = Range("O" & Rows.count).End(xlUp).row For i = 84 To LastRow Select Case Left(Range("K" & i).Value, 1) Case "B", "M", "D" Select Case Range("O" & i).Value Case "University of Illinois", "UofI" Range("N" & i) = "1234" End Select Case "A" Select Case Range("O" & i).Value Case "New York University", "NYU" Range("N" & i) = "5075" End Select End Select Next i End Sub