Команда Excel VBA Range щелкните несколько ячеек

#excel #vba

#excel #vba

Вопрос:

Я пытаюсь понять функцию range с помощью макроса VB, чтобы упростить работу с отчетами. В Интернете есть много справок об этом, но это работает только для одной ячейки. Я хочу, чтобы это решение работало для нескольких ячеек, расположенных в столбце.

Я хочу использовать командную кнопку.

Я упрощу сценарий. Если ячейка A1 = «1», то B2 должен сказать «Зеленый». Если «2», то «Желтый», а если «3», то «Красный».

 Private Sub CommandButton1_Click()

Dim TrafficCode As Integer, TrafficSignal As String
TrafficCode = Range("A1").Value

If TrafficCode = 1 Then TrafficSignal = "Green" Else
If TrafficCode = 2 Then TrafficSignal = "Yellow" Else
If TrafficCode = 3 Then TrafficSignal = "Red"

Range("B1").Value = SA3

End Sub
  

Для меня все это отлично работает для одной ячейки (A1).

Но что, если я хочу сделать более одной ячейки? Допустим, у меня есть ячейки A1: A5 с 1, 3, 2, 3, 2

Как мне заставить их отображать зеленый, красный, желтый, красный, желтый в B1: B5?

Я, очевидно, пытаюсь отредактировать диапазон («A1: A5») и т. Д., Но я получаю сообщение об ошибке.

Приведенное ниже не работает для меня.

 Private Sub CommandButton1_Click()

Dim TrafficCode As Integer, TrafficSignal As String
TrafficCode = Range("A1:A5").Value

If TrafficCode = 1 Then TrafficSignal = "Green" Else
If TrafficCode = 2 Then TrafficSignal = "Yellow" Else
If TrafficCode = 3 Then TrafficSignal = "Red"

Range("B1:B5").Value = SA3

End Sub
  

Явно чего-то не хватает. Я думаю, что логика, которую я использую, неверна.

Кто-нибудь может помочь?

Ответ №1:

Взгляните на это:

 Sub Traffic_Light()

Dim myRange As String
Dim rCell As Range

myRange = "A1:A5"

For Each rCell In Range(myRange).Cells

Select Case rCell.Value

Case Is = 1
    rCell.Offset(0, 1) = "Green"
Case Is = 2
    rCell.Offset(0, 1) = "Amber"
Case Is = 3
    rCell.Offset(0, 1) = "Red"
Case Else

End Select

Next rCell

End Sub
  

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