Добрый день!
Делаю файл, который автоматизирует довольно сложные вычисления для менеджеров. Ранее делал все на формулах, но формулы накладывают свои ограничения, например, на удаления строк. Решил перейти на вба, но тоже возникли проблемы. В файле на формулах у меня было по 1000 строк, из них обычно в спецификации использовано по 200, при этом тормозов не было, но файл весил очень много изза форматирования (1000 форматированных строк и кучей колонок со сложными формулами на нескольких листах, причем обычно пустыми на 90% - это много, в вба такой проблемы нет). То есть я делал формулы на если, а также использовал массивы, если вводные данные в конкретной строке были пустыми, она выдавала ноль - это в 2ух словах.
На вба же почему-то появляются сильные тормоза, когда число позиций больше 100 (а я еще даже треть функционала не прописал на данный момент). Формулы похожи на те, что я использовал на листе. Понимаю, что по-хорошему нам не нужно обрабатывать весь лист после каждого изменения, а только строку, в кот. были изменения и глобальные параметры, но как еще отлавливать их? Понимаю, что лучше менять только ту строку, в которой делали изменения, но во-первых не ясно как отследить эту строку со 100% вероятностью, а во вторых пользователь может выделить диапазон...
Если из моего сумбурного объяснения ничего не ясно, то напишу проще - как оптимизировать вычисления в файле
?
Надеюсь на ваш свежий взгляд, спасибо.
Делаю файл, который автоматизирует довольно сложные вычисления для менеджеров. Ранее делал все на формулах, но формулы накладывают свои ограничения, например, на удаления строк. Решил перейти на вба, но тоже возникли проблемы. В файле на формулах у меня было по 1000 строк, из них обычно в спецификации использовано по 200, при этом тормозов не было, но файл весил очень много изза форматирования (1000 форматированных строк и кучей колонок со сложными формулами на нескольких листах, причем обычно пустыми на 90% - это много, в вба такой проблемы нет). То есть я делал формулы на если, а также использовал массивы, если вводные данные в конкретной строке были пустыми, она выдавала ноль - это в 2ух словах.
На вба же почему-то появляются сильные тормоза, когда число позиций больше 100 (а я еще даже треть функционала не прописал на данный момент). Формулы похожи на те, что я использовал на листе. Понимаю, что по-хорошему нам не нужно обрабатывать весь лист после каждого изменения, а только строку, в кот. были изменения и глобальные параметры, но как еще отлавливать их? Понимаю, что лучше менять только ту строку, в которой делали изменения, но во-первых не ясно как отследить эту строку со 100% вероятностью, а во вторых пользователь может выделить диапазон...
Если из моего сумбурного объяснения ничего не ясно, то напишу проще - как оптимизировать вычисления в файле

Надеюсь на ваш свежий взгляд, спасибо.