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