Excel-选择具有多个标准的情况



下面的代码是我完整的摘录的一种摘录,因为它可以更容易阅读。我需要在某些情况下添加更多标准,我不确定如何实施。

要连续总结一下,如果列k的单词以b,m或d开头,则运行一组情况。如果列k的单词以a开头,则运行一组不同的情况。同样,这在起作用。但是在某些情况下,我需要它具有更多标准,而不仅仅是查看o。

例如,在第一种情况下,它需要检查"伊利诺伊大学"one_answers" UOFI",但还需要检查P列的" Urbana"one_answers"芝加哥"的值。我该怎么做?

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

这足够了吗?尚未测试,所以请反馈,以便我们可以让您进入解决方案

在正常情况下, Select Case语句不适用于Like操作员。但是,有一个工作。

为了使Select CaseLike一起使用,我们将添加True表达式。

代码

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

相关内容

最新更新