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