Код Excel VBA - если затем с несколькими параметрами If - PullRequest
0 голосов
/ 20 марта 2020

Я ищу совет специалиста по написанию небольшого количества 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

И так далее

1 Ответ

2 голосов
/ 20 марта 2020

Вам нужно будет использовать al oop и использовать Select Case, но l oop вариантный массив, а не диапазоны, это будет быстрее:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...