Страницы: 1
RSS
Приостановка выполнения макроса до пересчета формул
 
Здравствуйте. Столкнулся со следующей проблемой. В Exel с помощью макроса выгружаю массив данных - продажи за период (Около 5000 строк). Далее макрос растягивает формулы рядом с этим массивом. Получается довольно тяжеловесный массив. Авто пересчет я отключать не хочу,  поэтому хочу просто по выполнению расчета копировать массив с формулами и вставлять значения (Они мне в дальнейшем не нужны все равно).
Все было бы хорошо, но массив не успевает рассчитать значения, а макрос уже его копирует и получается на выходе ничего хорошего.
Если кто то сталкивался с подобным, как все таки начать копирование после выполнения пересчета страницы?
Еще одно замечание - некоторые формулы массива также являются функциями (макросами).
Изменено: Mirai - 14.10.2016 04:21:54
 
После заполнения диапазона формулами выполните команду по пересчёту (Calculate) на свой выбор: книги, листа, диапазона с формулами.
После неё делайте замену формул на значения.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Спасибо JayBhagavan, работает.
Есть еще вопрос по копированию цифр. Дело в том, что при копировании (selection.value=selection.value) у меня пропадают нули перед кодами (было 00154 стало 154). И тут два варианта копировать как текст, но я не знаю как или добавить нули опять. Хорошего решения я не нашел, кроме такого:
Format( n, "000000"), но я не понял как им пользоваться.
Может кто при помощи VBA выставлял такие форматы текста?
 
Range().NumberFormat = "000000" - выдает число с нулем перед ним, но это не одно и тоже. Как сделать сохранение как текст, не пойму.
 
Цитата
2.6. Один вопрос - одна тема. Не следует в открываемой теме обозначать и задавать сразу несколько вопросов.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
Страницы: 1
Наверх