Цитата |
---|
skais675 написал: Поставьте условие в начале. |
Ну, а как понять, много элементов в target возникло от элементарного сдвига половины списка или от скажем выделения какого-то столбца и изменения его через <ctrl>-<enter>?
В первом случае ожидание отработки ПП. бессмысленно. Во втором - необходимость, связанная с реальным изменением данных.
Цитата |
---|
skais675 написал: Или определите допуск на обработку измененных ячеек. |
Дак это уже сделано. Константа ge129 в моем коде заведует данным вопросом. Когда то ее значение было на уровне всего 500. Задолбада система предупреждениями. Не хватает мне этого никак. Со временем дотянул вот до 60 тыс. Уровень вроде несусветно большой. Но при работе с непрерывно расположенными данными перемены в таких больших массивах возможны всего в два клика. Например стыкую прайс поставщика с бывшими в базе ранее его версиями. У поставщика в прайсе около 12 тысяч строк. Предшествующие версии дают около 50 тысяч строк. Задача пометить свежие 12 тысяч текущей датой, чтобы видно было в общем списке из 50 тысяч, какие строки актуальны и относятся именно к последнему прайсу. Тривиальная по сути задача. А ресурсы на обработку этих операций выделяются уж не хилые.
Цитата |
---|
skais675 написал: Вы должны отдавать себе отчет сколько ячеек меняются для Вашего события определите и поставьте этот порог. |
Отдавать отчет практически не реализуемо. Код обработчика универсален и один для разных листов, заполненных совершенно разной информацией. На каком-то листе пользователь будет работать с таблицей из десяти строчек, а на каком-то все 65 тысяч будут заполнены. И во всех случаях отрабатывает один и тот же обработчик. Более того, отрабатывает он в накопительном режиме от команды сохранения изменений до следующей команды сохранения изменений. Человек может сидеть и часами править один и тот же лист, то в одном столбце, то в другом. Обработчик все это время заполняет и заполняет массив ge102 , вписывая в него номера строк, которые претерпели за все это время редакции изменения. Таким образом изменено может быть всего три строки, а может и тридцать три тысячи три. Переменная ge102(?,0) показывает число измененных строк, которое уже занесено на данный момент в массив ge102(?,?) Как только пользователь даст команду сохранения изменений, только после этого все накопленные данные данные можно будет сбросить простым сбросом счетчика ge102(?,0) элементов, помещенных в массив.