powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Excel VBA: возможно ли отследить событие сортировки?
12 сообщений из 12, страница 1 из 1
Excel VBA: возможно ли отследить событие сортировки?
    #39653022
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Есть книга с кучей таблиц, где временами делают сортировки по разным критериям.

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

Народ, подскажите, есть ли возможность перехватывать события сортировки?
...
Рейтинг: 0 / 0
Excel VBA: возможно ли отследить событие сортировки?
    #39653050
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MAULER,
поместите на лист "летучую" функцию напр. =СЛЧИС() и используйте Worksheet_Calculate.
...
Рейтинг: 0 / 0
Excel VBA: возможно ли отследить событие сортировки?
    #39653053
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский,

Поясните пожалуйста, что значит "летучая функция"?
...
Рейтинг: 0 / 0
Excel VBA: возможно ли отследить событие сортировки?
    #39653114
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAULER,

Летучие (изменяемые, изменчивые, волатильные) - те, которые пересчитываются при любых изменениях на листе, независимо от того, поменялись ли исходные данные этих функций.
...
Рейтинг: 0 / 0
Excel VBA: возможно ли отследить событие сортировки?
    #39653238
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-duke,

Дело в том, что Calculate срабатывает раньше, чем Change. А на Change у меня навешена определённая логика.
А сортировка "тревожит" только Calculate (без Change).

Не могу придумать, как мне в этих двух обработчиках выделить только сортировку. Т.е. когда сработает Calculate, оно не будет ждать Change! По идее, чтобы понять что сработала сортировка, нужно быть уверенным, что Change не сработал.
...
Рейтинг: 0 / 0
Excel VBA: возможно ли отследить событие сортировки?
    #39653263
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Событие AfterCalculate срабатывает после Change - если это поможет... Но вот как установить, что оно вызвано именно сортировкой, я лично фиг знает.
...
Рейтинг: 0 / 0
Excel VBA: возможно ли отследить событие сортировки?
    #39653264
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Впрочем, если между Calculate и AferCalculate не было Change - ну считай, что это таки сортировка. Авось нечасто будешь ошибаться.
...
Рейтинг: 0 / 0
Excel VBA: возможно ли отследить событие сортировки?
    #39653316
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

Спасибо! Обязательно попробую!!
...
Рейтинг: 0 / 0
Excel VBA: возможно ли отследить событие сортировки?
    #39653391
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то не могу найти ни одного примера с событием AfterCalculate.
И экселем оно не принимается.
...
Рейтинг: 0 / 0
Excel VBA: возможно ли отследить событие сортировки?
    #39653585
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MAULER,
это событие похоже только в 2016 появилось.
Можно в Calculate установить флаг и запланировать процедуру через секунду, а в Change сбросить флаг. Процедура проверяет флаг: если установлен, то производит обработку и сбрасывает флаг.
Хотя Calculate может вызываться и без сортировки.
...
Рейтинг: 0 / 0
Excel VBA: возможно ли отследить событие сортировки?
    #39653675
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский,
У меня и так 2016 офис, но что то не вижу я такого события ((
...
Рейтинг: 0 / 0
Excel VBA: возможно ли отследить событие сортировки?
    #39653690
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанскийэто событие похоже только в 2016 появилось.Неправда ваша. У меня в 2010 имеется. Но это событие не листа или книги, а объекта Excel.Application, и к нему и надо достукиваться через экземпляр этого объекта, объявляя соответственно Dim WithEvents, формируя обработчик метода, и так далее.

MAULERне могу найти ни одного примера с событием AfterCalculate.Надо искать не в песочнице, а на сайтах/форумах для продвинутых... и да - не факт что найдёшь.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Excel VBA: возможно ли отследить событие сортировки?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]