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 CaseLike一起工作,我们将添加一个Trueexpression式。

 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