Excel VBA – Cascading Выпадающие меню очистки / сброса

Это мой первый пост, и я совсем ушел. Также немного подчеркнуто, потому что мне нужно найти решение моей проблемы для работы довольно скоро … Но мы доберемся туда.

Итак, я придумал двухстраничный файл excel. Одна («база данных») имеет таблицу около ста строк наших проектов, а среди столбцов – «регион» и «офис». Регион находится там, где находится проект, а офис – это полевое отделение, управляющее этим проектом в регионе.

Второй рабочий лист («приборная панель2») имеет набор индикаторов с использованием сложных формул. Два раскрывающихся меню (я использовал для них ссылки в виде комбинированных блоков формы, но, похоже, Excel называет их «Drop Down 1» и «Drop Down 2») позволяет пользователю выбирать регион и офис. Вторая выпадающая группа уже выбирает из именованного диапазона, основываясь на значении первого выпадающего меню. Это здорово.

Теперь вы, вероятно, видите, где я собираюсь: все работает отлично, абсолютно без VBA, за исключением того, что «офис» не будет сброшен, когда я изменю регион. В частности, если я выберу, говорит, первый регион и четвертый офис этого региона, а затем перейдем ко второму региону, у меня будут данные для четвертого офиса этого региона, а не для удаления второго выпадающего меню.

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

Private Sub DropDown1_Change() myVal = ThisWorkbook.Sheets("Dashboard2").DropDown1.Value 'loop thru col G of Database lr = ThisWorkbook.Sheets("Database").Cells(Rows.Count, 1).End(xlUp).Row 'clear combobox 2 ThisWorkbook.Sheets("Dashboard2").DropDown2.Clear 'loop thru For x = 10 To lr If myVal = ThisWorkbook.Sheets("Database").Cells(x, 8) Then 'add to combobox ThisWorkbook.Sheets("Dashboard2").DropDown2.AddItem ThisWorkbook.Sheets("Database").Cells(x, 7) End If Next x 

«7» и «8» относятся к столбцам G и H моей первой таблицы, где расположены «офисная» и «региональная» информация. Цикл «for» начинается с 10, потому что это строка первого проекта. Если я не ошибаюсь, приведенный выше код нацелен на изменение первого раскрывающегося меню при очистке и повторной загрузке второго раскрывающегося меню.

Тем не менее, я получаю или не получаю никакой информации во втором раскрывающемся меню, или я получаю ошибку времени выполнения 438 «объект не поддерживает это свойство или метод», и я не знаю, что с ним делать. Побочные вопросы включают в себя: «должен ли код VBA находиться в элементе листа категории« microsoft excel objects »или в категории« module »?» «Нормально, что мои выпадающие окна, по-видимому, ссылаются на Excel как« Drop Down 1 »в документе excel и« dropdown1 »в редакторе VBA? (Я уже пытался использовать что-то вроде Set d1 = ThisWorkbook.Sheets (" Dashboard2 "). DropDowns (« Drop Down 1 »), но безрезультатно).

Вот и все, ребята, вот и все, что у меня есть. Я все прислушиваюсь к предложениям. Заранее большое спасибо!

Лу

Interesting Posts

Excel VBA отказывается вводить / определять дату в ячейке на собственном языке

Создание сводной таблицы с несколькими иерархиями в Pandas

Excel vba: Можно ли инициализировать массив дат в одной строке с помощью скобок?

Как сохранить как PDF через VBA

Создание ссылки на динамическую ячейку в формуле excel

Словарь внутри словаря

Извлечение частей из текстового файла

VBA excel, сравнить строки из двух книг

Excel-фильтрация / скрытие столбцов с использованием динамических макросов

Сравните сам столбец, чтобы проверить, имеет ли он дублирующее значение в EXCEL

Разрешить вставку на листе без перезаписи заблокированных ячеек

Как проверить, находится ли текущая ячейка в первой строке таблицы?

Использование столбца в листе excel в качестве входного документа в операторе обновления в Oracle с использованием PL / SQL

Строка подключения для .xlsx

Excel VBA уведомляет всех читателей с возможностью изменения только для чтения

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