Используйте выпадающее меню, чтобы изменить ячейки рядом с выпадающим списком

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

Например: мой выпадающий список содержится в столбце A COMMENT MOVE

Когда я выбираю "КОММЕНТАРИЙ", я хотел бы заполнить в столбце B "ВВОД КОММЕНТАРИИ". Когда я выбираю "ДВИЖЕНИЕ", я хотел бы заполнить в столбце В "ВВОД ТИП ДВИЖЕНИЯ" и в столбце С "ВВОД СКОРОСТИ ПЕРЕМЕЩЕНИЯ"

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

1 ответ

Если я правильно понимаю, вы можете сделать это с помощью VBA или просто с помощью функции. В моем примере у меня есть список в A1 И в A4 Оба содержат "КОММЕНТАРИЙ" и "ДВИЖЕНИЕ".

В B1 У меня есть функция =IF(A1="MOVE","ENTER MOVE TYPE",IF(A1="COMMENT","ENTER COMMENT"," "))

И в C1 функция =IF(A1="MOVE","ENTER MOVE SPEED","")

Для списка в A4 Я использую VBA на листе (щелкните правой кнопкой мыши на листе и выберите "Показать код")

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range(Target.Address), Range("A4")) Is Nothing And Target.Count = 1 Then
    If Target.Value2 = "MOVE" Then
        Target.Offset(, 1).Value = "ENTER MOVE TYPE"
        Target.Offset(, 2).Value = "ENTER MOVE SPEED"
    ElseIf Target.Value2 = "COMMENT" Then
        Target.Offset(, 1).Value = "ENTER COMMENT"
        Target.Offset(, 2).Value = ""
    Else
        Target.Offset(, 1).Value = ""
        Target.Offset(, 2).Value = ""
    End If
End If
End Sub

Я использую относительную позицию текста в B а также C с помощью .Offset поэтому меньше кода нужно менять в зависимости от местоположения списка.

Другие вопросы по тегам