При форматировании выпадающего меню вы указываете ячейку для хранения результата элемента, который был выбран в меню.
Это называется «ссылка на ячейку» и всегда будет содержать число, равное позиции, выбранной пользователем в раскрывающемся списке меню.
Вы можете использовать INDEX (), чтобы получить фактическое значение пункта меню (из списка пунктов меню), и на этой странице учебника показано, как скрыть / показать строки с помощью VBA.
Я собираюсь начать с этого, но этот сайт не является «кодом для меня». Вы должны потратить время, чтобы научиться кодировать в VBA.
Во-первых, вы должны правильно настроить выпадающий список. На рисунке ниже я настроил некоторые данные, аналогичные вашим, с помощью раскрывающегося списка (также известного как поле со списком).
Здесь я отформатировал элемент управления и определил диапазон ввода (элементы списка) как A2: A8, а ссылку на ячейку - как B2. Когда я выбираю «Показать все» из выпадающего списка, ячейка B2 показывает 7, потому что «Показать все» является 7-м пунктом в списке.
Теперь вы должны создать аналогичный выпадающий список и назначить ему этот макрос:
Sub ShowHideRows() 'Set up variables Dim ResultText As String 'Initialize variables 'If choice is "Show All", set ResultText to ABCD, a value that won't be found 'Otherwise, get the text from the list If Range("B2") = 7 Then ResultText = "ABCD" Else ResultText = Application.WorksheetFunction.Index(Range("A2:A7"), Range("B2")) End If MsgBox (ResultText) End Sub
Если вы все делаете правильно, то всякий раз, когда вы выбираете элемент из списка, вы должны увидеть сообщение, отображающее выбранный вами элемент списка.
Если вам нужно больше узнать о том, как написать и отладить VBA или как назначить модуль VBA для элемента управления, то воспользуйтесь Интернетом и изучите, как это сделать.
Задайте вопросы здесь, если у вас возникнут проблемы.