Как вытащить первые два символа в строке из ячейки и распечатать в другую ячейку - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь запрограммировать макрос, который будет принимать первые два символа в строке, сравнивать их с помощью оператора switch, а затем выводить соответствующую информацию в другой столбец ячеек. У меня есть сценарий, но он ничего не делает. Я новичок в VBA, поэтому у меня болит голова.

Я пробовал несколько разных методов, которые я нашел в Интернете. Я рассмотрел примеры использования Left () для извлечения подстроки и того, как написать оператор switch в VB. Я не уверен, где моя ошибка, похоже, она правильно компилируется, но ничего не выводит.

Sub PullLocation()
    Dim i As Integer  

    For i = 2 To 170
        Dim contents As String
        contents = Left(Ai, 2)
        Select Case contents
            Case "FC"
                Cells(i, AJ) = "Fort Collins"
            Case "BR"
                Cells(i, AJ) = "Broomfield"
            Case "BO"
                Cells(i, AJ) = "Boulder"
            Case "CC"
                Cells(i, AJ) = "Canon City"
            Case "FR"
                Cells(i, AJ) = "Franktown"
            Case "FM"
                Cells(i, AJ) = "Fort Morgan"
            Case "GU"
                Cells(i, AJ) = "Gunnison"
            Case "GR"
                Cells(i, AJ) = "Granby"
            Case "GJ"
                Cells(i, AJ) = "Grand Junction"
            Case "GO"
                Cells(i, AJ) = "Golden"
            Case "LJ"
                Cells(i, AJ) = "La Junta"
            Case "LV"
                Cells(i, AJ) = "La Veta"
            Case "MO"
                Cells(i, AJ) = "Montrose"
            Case "SA"
                Cells(i, AJ) = "Salida"
            Case "SF"
                Cells(i, AJ) = "State Forest"
            Case "SS"
                Cells(i, AJ) = "Steamboat Springs"
            Case Else

        End Select
    Next i
End Sub

Он должен состоять из двух символов, которые представляют собой сокращенное название города. Предполагается, что в другом столбце ячеек выводится полное название города и игнорируются любые несоответствующие сокращения, оставляя ячейку пустой.

Я не получаю никаких сообщений об ошибках, но в моем листе Excel ничего не меняется.

1 Ответ

0 голосов
/ 28 июня 2019

Я предполагаю, что происходящее относится к "AJ" и "Ai".Измените AJ на 36. Ai следует изменить на «Ячейки (i, 35). Значение» (значение в AI и любой номер строки).Я бы также поместил «Dim contents As String» перед началом цикла, но оставил бы «contents = Left (Cells (i, 35) .Value, 2)» в цикле.

Это выглядело бы что-токак это:

Sub PullLocation()
    Dim i As Integer

    For i = 2 To 170
        Dim contents As String
        contents = Left(Cells(i, 35).Value, 2)
        Select Case contents
            Case "FC"
                Cells(i, 36) = "Fort Collins"
            Case "BR"
                Cells(i, 36) = "Broomfield"
            Case "BO"
                Cells(i, 36) = "Boulder"
            Case "CC"
                Cells(i, 36) = "Canon City"
            Case "FR"
                Cells(i, 36) = "Franktown"
            Case "FM"
                Cells(i, 36) = "Fort Morgan"
            Case "GU"
                Cells(i, 36) = "Gunnison"
            Case "GR"
                Cells(i, 36) = "Granby"
            Case "GJ"
                Cells(i, 36) = "Grand Junction"
            Case "GO"
                Cells(i, 36) = "Golden"
            Case "LJ"
                Cells(i, 36) = "La Junta"
            Case "LV"
                Cells(i, 36) = "La Veta"
            Case "MO"
                Cells(i, 36) = "Montrose"
            Case "SA"
                Cells(i, 36) = "Salida"
            Case "SF"
                Cells(i, 36) = "State Forest"
            Case "SS"
                Cells(i, 36) = "Steamboat Springs"
            Case Else

        End Select
    Next i
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...