Использование элементов из комбинированного блока VBA (управление формой, внутри рабочего листа) для запуска макросов

Так что я хотел достичь, когда кто-то нажимает на определенный год внутри поля со списком (которое находится возле ячейки A1 на моем листе), макрос запускается в соответствии с выбранным годом. Я хочу, чтобы элементы списка сохранялись в самом коде VBA, вместо того, чтобы выбирать их на листе (я не нашел ни одного учебника о поле со списком, которое не использует данные рабочего листа).

Я создал кнопку для загрузки данных в ComboBox1.

Это код на данный момент (я не пытаюсь придерживаться его строго, поэтому, если есть более простой способ написать это, сообщите мне):

Sub Button1_Click() Sheets("MacroBase").ComboBox1.List = Array("2015", "2016", "2017", "2018", "2019") End Sub Sub ComboBox1_GotFocus() With ThisWorkbook.Sheets("MacroBase").Shapes("ComboBox1").ControlFormat Select Case .List(.Value) Case "2015": ShowOnly2015Columns Case "2016": ShowOnly2016Columns Case "2017": ShowOnly2017Columns Case "2018": ShowOnly2017Columns Case "2019": ShowOnly2019Columns End With End Sub 

Я не вставлял код для ShowOnly #### Columns (протестирован и работает без проблем).

В настоящее время _GotFocus не работает.

Я благодарю заранее за все ваше время и помощь 🙂

использовать это

 Sheets(1).Shapes("ComboBox1").ControlFormat.List = Array("2015", "2016", "2017", "2018", "2019") 

убедитесь, что Sheets(1) относятся к рабочему листу, ваш combobox ComboBox1 на самом деле находится в

было бы безопаснее использовать имя листа, например,

 Sheets("mySheet").Shapes("ComboBox1").ControlFormat.List = Array("2015", "2016", "2017", "2018", "2019") 

наконец, если вы хотите заполнить поле со списком с содержимым диапазона рабочего листа, чем вы использовали:

 Sheets("mySheet").Shapes("ComboBox1").ControlFormat.ListFillRange = "'My Sheet'!A1:A5" 

Существует 2 типа списков со списком.

См. Этот вопрос и ответ. Это должно заставить вас идти.

Запуск макроса при нажатии на ComboBox

Вы можете принять событие GotFocus и заполнить поле со списком.

  • Экзамен Excel 2016 VBA активируется, но затем деактивируется
  • Нельзя использовать более одного комбинированного блока на excel
  • Как я могу указать столбец для заполнения Excel Combobox?
  • Заполнение выпадающих списков с именованных диапазонов
  • Пользовательский интерфейс VBA добавляет новые значения в Combobox
  • Excel VBA: ComboBox Ошибка времени выполнения 6: переполнение при вводе значения ключа
  • Использование combobox и щелчок для фильтрации данных на отдельном листе в Excel
  • Установите значение в первом поле со списком, чтобы включить второй комбинированный блок на веб-странице, используя excel VBA
  • Как найти индекс выбранного выбора в поле со списком?
  • Изменение содержания формулы на основе значения ComboBox
  • что такое событие excell VBA combobox change?
  • Interesting Posts

    Как могут быть установлены столбцы?

    Собирать столбцы в один столбец, когда ячейка содержит значение

    Условный оператор внутреннего соединения (VBA / SQL) для генерации нескольких значений

    Использование проблем CommandBars.ExecuteMso

    Запрос Excel Power не работает на компьютере коллег

    Найти слова и скопировать в следующий столбец в Excel

    Копировать и вставить в первый пул строк

    конвертирование Excel в защищенный паролем PDF с помощью Microsoft.Office.Interop.Excel и vb.net

    Можно ли использовать средства разработки Office в Visual Studio express

    Объединить текст Excel с максимальной функцией

    Значения столбцов. Настраивание. Экспорт Excel в ASP.NET.

    VBA. Проверьте, скрыт ли именованный диапазон. Если не скрыто, высота ячейки автоподбора

    Как сохранить исходный размер изображения с помощью vba?

    Программирование MS-офиса с C # – возможно ли это?

    VBA Найти и заменить часть пути к файлу

    Давайте будем гением компьютера.