Оптимізуйте мої макроси на форумах VBA - Область для початківців myDearFriend! Сторінки Excel

Насправді приємна втрата ваги:) Тим не менш, є дещо, до речі, у вас є зображення на вкладці "Меню", подивіться, скільки воно важить, чи знаєте ви коли-небудь.

оптимізуйте

Для критерію DBL2 ви можете додати інший рядок коду, наприклад:

Насправді я не знаю, чи правильно я зрозумів ваше запитання, але ви хочете мати можливість вибрати як регіон (який є у фільтрі), так і питання (яке є в мітці стовпця в TCD)?
Якщо це все, я вкладу інший файл, я виключив вкладку "Меню" та інтегрував два розкривні списки на вкладці TCD, один для вибору регіону, інший для вибору питання.
Потім натисніть на кнопку, і TCD відображається із запитаними параметрами.

Для випадаючих списків ви можете переглянути їх у меню "Дані"/"Перевірка" (список регіонів та питань я розмістив на вкладці "Листування")

Для DBT; Я погано володію VBA, але в будь-якому випадку з макрореєстратором та деякими домовленостями, ось код, який ви можете перевірити у файлі (коментарі зеленим кольором):

'' Щоб заблокувати оновлення дисплея
'Повернути абсолютно в кінець макросу
Застосування. ScreenUpdating = Помилковий

'Визначення змінних
'VQuest для обраного питання
'VOldQuest для старого питання
'VRegion для обраного регіону
Приглушити VQuest як рядок, VOldQuest як рядок, VRegion як рядок

'Змінні приймають значення вкладки TCD1
'у клітинах С2 С3 і С14
VRegion = Аркуші ("TCD1"). Діапазон ("C2")
VOldQuest = Аркуші ("TCD1"). Діапазон ("C14")
VQuest = Аркуші ("TCD1"). Діапазон ("C3")

'Серія інструкцій (ми можемо поставити лише одну) буде виконана на зведеній таблиці1
оператори, розміщені між символами WITH і End With

'Перша інструкція: Поле "Регіони" приймає значення змінної VRegion
За допомогою ActiveSheet. Зведені таблиці ("Зведена таблиця1")
. PivotFields ("Регіони"). CurrentPage = VRegion

'Якщо ми натиснемо кнопку, не змінюючи питання
'ми пропускаємо лікування, якщо не виконуємо його
Якщо VQuest <> VOldQuest Тоді
'Якщо питання не пусте (якщо ні, то пропускаємо лікування)
'ми розміщуємо поле VQuest у TCD
'код, отриманий за допомогою макрофона
Якщо VQuest <> " Тоді
С. PivotFields (VQuest)
. Орієнтація = xlColumnField
. Позиція = 1
Закінчити з
Завершити якщо
'Якщо старе запитання не порожнє, ми видаляємо поле VOldQuest з TCD
Якщо VOldQuest <> " Тоді
С. PivotFields (VOldQuest)
. Орієнтація = xlHidden
Закінчити з
Завершити якщо
Завершити якщо
Закінчити з

'Примусити клітинку C14 обернутися
'якщо не загубишся під час оновлення TCD
Діапазон ("C14"). WrapText = Істина

'Відновлює оновлення дисплея
Застосування. ScreenUpdating = True

(протестовано 2007 року, я не маю можливості перевірити інші версії)

Ось, я дам вам побачити, чи це вам підходить.