У меня есть рабочая тетрадь с несколькими листами.
Каждый лист с данными имеет общий столбец K, который содержит имена Client Manager.
В Sheet2 я использовал поле проверки данных в C1, используя список, поэтому создал раскрывающийся список, в котором я могу выбрать Client Manager.
Поэтому, если я выберу Чарли Брауна и запуском макроса, я бы хотел, чтобы все листы были отфильтрованы, чтобы показывать только данные Чарли Брауна.
Я абсолютный новичок в VBA, поэтому я беспощадно беспокоил г-на Google - большинство предложений касаются жесткого кодирования значения фильтра, а не превращения его в переменное значение ячейки.
Лучшее, что я нашел, это:
Sub apply_autofilter_across_worksheets ()
Dim xWs As Worksheet
В случае ошибки Продолжить Далее
Для каждого xWs в рабочих листах
xWs.Range ("K"). Автофильтр 1, CLng (Sheets ("Sheet2"). Диапазон ("C1"). Значение)
Далее
Конец Sub
Когда я запускаю макрос:
• Положительный - без ошибок!
• Отрицательно - ничего не происходит
Я не уверен, что это делает: xWs.Range ("K") - исходный скрипт имел номер после буквы столбца, но независимо от того, какой номер я ставил после него, он делает без разницы.
Я также просто ввел имя Client Manager в C1, без последствий. Так ясно, что все просто сломано.
Есть 8 листов данных, а также Sheet2. Количество столбцов варьируется от листа к листу, но ни один не превышает AZ.
Любая помощь будет принята с благодарностью, пожалуйста!