Для целей ускорения вычислений я перед началом работы макроса отключаю вычисления командой [vba]
Код
Application.Calculation = xlManual
[/vba],а по завершении работы макроса включаю вычисления командой [vba]
Код
Application.Calculation = xlSemiautomatic
[/vba].
После включения расчета не просто переставляется галочка в меню "Параметры вычислений", но и осуществляется сам расчет.
Можно ли сделать так, чтобы после включения вычислений расчет бы в этот момент не производился, а менялось только местоположение галочки в меню "Параметры вычислений"?Таким образом, расчет включался бы только при последующих действиях в книге, уже после выполнения макроса.
Заранее огромное спасибо!
Здравствуйте, Форумчане!
Для целей ускорения вычислений я перед началом работы макроса отключаю вычисления командой [vba]
Код
Application.Calculation = xlManual
[/vba],а по завершении работы макроса включаю вычисления командой [vba]
Код
Application.Calculation = xlSemiautomatic
[/vba].
После включения расчета не просто переставляется галочка в меню "Параметры вычислений", но и осуществляется сам расчет.
Можно ли сделать так, чтобы после включения вычислений расчет бы в этот момент не производился, а менялось только местоположение галочки в меню "Параметры вычислений"?Таким образом, расчет включался бы только при последующих действиях в книге, уже после выполнения макроса.
Можно сделать так, что после выполнения макроса и каких-либо действий пользователя, включался выключенный авто пересчёт, но не то что вы хотите.
Можно сделать так, что после выполнения макроса и каких-либо действий пользователя, включался выключенный авто пересчёт, но не то что вы хотите.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
можно задать переменную типа boolean включать авто пересчет книги при событии SelectChange при условии что эта переменная true
а переменную установить после выполнения всех макросов. тогда при следующем изменении ячейки пользователем, включится авто пересчет, и расчет выполнится.
можно задать переменную типа boolean включать авто пересчет книги при событии SelectChange при условии что эта переменная true
а переменную установить после выполнения всех макросов. тогда при следующем изменении ячейки пользователем, включится авто пересчет, и расчет выполнится.K-SerJC
bmv98rus, Спасибо за идею! Думаю можно сделать так. Макрос, о котором я писал, находится на листе, на котором агрегируются данные с других листов, на которых вводятся исходные данные. Можно на листе, на котором находится макрос вырубать каждый раз пересчет после выполнения макроса, а на листах, на которых исходные данные, в коде листа включать пересчет при изменении данных листов.
bmv98rus, Спасибо за идею! Думаю можно сделать так. Макрос, о котором я писал, находится на листе, на котором агрегируются данные с других листов, на которых вводятся исходные данные. Можно на листе, на котором находится макрос вырубать каждый раз пересчет после выполнения макроса, а на листах, на которых исходные данные, в коде листа включать пересчет при изменении данных листов.Lyova
Lyova, Отработал макрос и все значения на своих местах, я так понимаю, что при в этот момент "курок взведен" и если включить пересчет, то данные изменятся. Если так, то по любым событиям включая предложенное K-SerJC, отработает калькуляция что будет равносильно просто включению пересчета автоматом. В этом случае нужно на каждом листе отслеживать событие просто Worksheet_Change и ориентироваться по нему, а чтоб не городить огород из подпрограмм, то Workbook_SheetChange в модуле книги. При этом похоже что надо просто запускать пересчет листа, листов, книги, а не переключать режим. результат будет аналогичным.
Lyova, Отработал макрос и все значения на своих местах, я так понимаю, что при в этот момент "курок взведен" и если включить пересчет, то данные изменятся. Если так, то по любым событиям включая предложенное K-SerJC, отработает калькуляция что будет равносильно просто включению пересчета автоматом. В этом случае нужно на каждом листе отслеживать событие просто Worksheet_Change и ориентироваться по нему, а чтоб не городить огород из подпрограмм, то Workbook_SheetChange в модуле книги. При этом похоже что надо просто запускать пересчет листа, листов, книги, а не переключать режим. результат будет аналогичным.bmv98rus
Замечательный Временно просто медведь , процентов на 20.