Excel VBA代码-If Then和多个If选项

Excel VBA代码-If Then和多个If选项,excel,vba,Excel,Vba,我正在寻找一些关于为我正在构建的工作表编写一点VBA的专家建议。我试过几种不同的变体,但运气不好。我已经把我的东西贴在下面了。如蒙协助,将不胜感激 If Range("C2:C900").Value = ("ME","NH","VT","MA","RI","CT") Then Range("D2:D900").Value = I If Range("C2:C900").Value = ("NY",NJ","PR") Then Range("D2:D900").Value = II If Ra

我正在寻找一些关于为我正在构建的工作表编写一点VBA的专家建议。我试过几种不同的变体,但运气不好。我已经把我的东西贴在下面了。如蒙协助,将不胜感激

If Range("C2:C900").Value = ("ME","NH","VT","MA","RI","CT") Then Range("D2:D900").Value = I

If Range("C2:C900").Value = ("NY",NJ","PR") Then Range("D2:D900").Value = II

If Range("C2:C900").Value = ("PA",MD","DE","VA","DC","WV") Then Range("D2:D900").Value = III

依此类推

您将需要使用循环并使用
选择案例
但循环变量数组而不是范围,这样会更快:

With ActiveSheet 'Should change to the actual sheet
    Dim inRng As Variant
    inRng = .Range("C2:C900").Value

    Dim outRng As Variant
    outRng = .Range("D2:D900").Value

    Dim i As Long
    For i = LBound(inRng, 1) To UBound(inRng, 1)
        Select Case inRng(i, 1)
            Case "ME", "NH", "VT", "MA", "RI", "CT"
                outRng(i, 1) = "I"
            Case "NY", "NJ", "PR"
                outRng(i, 1) = "II"
            Case "PA", "MD", "DE", "VA", "DC", "WV"
                outRng(i, 1) = "III"
            Case Else
                outRng(i, 1) = ""
        End Select
    Next i

    .Range("D2:D900").Value = outRng
End With

您需要使用循环并使用
Select Case
但是循环变量数组而不是范围,这样会更快:

With ActiveSheet 'Should change to the actual sheet
    Dim inRng As Variant
    inRng = .Range("C2:C900").Value

    Dim outRng As Variant
    outRng = .Range("D2:D900").Value

    Dim i As Long
    For i = LBound(inRng, 1) To UBound(inRng, 1)
        Select Case inRng(i, 1)
            Case "ME", "NH", "VT", "MA", "RI", "CT"
                outRng(i, 1) = "I"
            Case "NY", "NJ", "PR"
                outRng(i, 1) = "II"
            Case "PA", "MD", "DE", "VA", "DC", "WV"
                outRng(i, 1) = "III"
            Case Else
                outRng(i, 1) = ""
        End Select
    Next i

    .Range("D2:D900").Value = outRng
End With

您需要循环范围,因为值数组不能等于一个值。同时查看
Select Case
您也可以使用查找表进行此操作。您需要循环范围,因为一个值数组不能等于一个值。同时查看
Select Case
,您也可以使用查找表进行此操作