У меня есть проблема, которая ломает мне голову уже пару дней, поэтому я решил поделиться ею с вами, может быть, вы уже наткнулись на ту же проблему.
=== это контекст : ===
Я работаю над этим файлом Excel, где у меня есть, среди прочего, эти три вкладки: - одна, называемая «Данные», где я храню данные, необходимые для файла, в обычном Таблица; - вторая, называемая «Chart_1», где можно найти pivot_table_1 и chart_1. Источник этих объектов находится на вкладке «Данные». - третья вкладка называется «Диаграмма_2» и содержит сводную таблицу_2 и диаграмму_2. Эти объекты также получены из вкладки «Данные». У меня есть пять слайсеров во вкладке "Chart_1" и еще пять во вкладке "Chart_2". Все слайсеры подключены к обеим сводным таблицам, которые находятся на вкладках «Диаграмма *». Я использовал VBA для форматов диаграмм во вкладках, как события Worksheet_Change.
=== В этом проблема: ===
Когда я выбираю что-то в слайсере (в зависимости от того, что " Chart * (вкладка), она всегда активирует Chart_2. Если я щелкну один из слайсеров на вкладке «Диаграмма_1», то при запуске макроса fini sh активируется вкладка «Диаграмма_2». Когда я нажимаю на один из слайсеров на вкладке "Chart_2", все в порядке, потому что активированная вкладка не меняется. Какой бы слайсер я ни использовал (в какую бы вкладку он не был встроен), VBA всегда запускает сначала «Chart_1» Worksheet_Change, а затем «Chart_2» Worksheet_Change. Я думаю, что это происходит из-за соединений фильтра: когда я нажимаю на один слайсер, он вызывает все затронутые события Worksheet_Change.
=== это то, что я уже пробовал: ===
- есть глобальная переменная, в которой я храню название соответствующей вкладки работы. Не сработало, потому что оба макроса с обеих вкладок выполнены. Я попытался сделать то же самое со счетчиком, но также потерпел неудачу.
- ищите событие OnClick, где я мог бы сохранить имя вкладки, на которой щелкнул последний раз перед запуском макроса "Chart *". Не нашел ни одного события OnClick, бух.
- Я думал о наличии глобальной переменной для хранения имени листа слайсера, который я щелкнул / выбрал в последний раз, но я не знаю, как его получить. Это. Как вы думаете, это может сработать? Как я могу это реализовать?
Итак, это моя проблема с логикой / программированием, прямо сейчас. Есть ли у вас какие-либо предложения о том, как я могу это исправить? Я просто хочу остаться во вкладке, где я был, когда я нажал на слайсер ...