Поделиться через


Свойство Application.DeferRecalc (Visio)

Определяет, вычисляет ли приложение формулы ячеек во время ряда действий. Для чтения и записи.

Синтаксис

expression. DeferRecalc

выражение: переменная, представляющая объект Application.

Возвращаемое значение

Целое число

Замечания

Используйте свойство DeferRecalc для повышения производительности во время ряда действий. Например, можно отложить пересчет формул при изменении формул или значений нескольких ячеек. После завершения последовательности действий необходимо всегда возвращать свойству DeferRecalc значение, которое оно имело до изменения. См. приведенные ниже примеры.

Если вы освобождаете объекты или отправляете большое количество команд в Visio во время отсрочки пересчета, Visio иногда может потребоваться обработать свою очередь ожидающих пересчетов. Поэтому используйте осторожность при настройке формул в области, в которой требуется отложить пересчет. В идеале формулы следует задавать только при отключении пересчета.

Например, рассмотрим следующую последовательность Microsoft Visual Basic для приложений (VBA).

Dim blsDeferCalcOriginalValue As Boolean 
blsDeferCalcOriginalValue = Application.DeferRecalc 
Application.DeferRecalc = True 
vsoShape.Cells("height").ResultIU = 12 
vsoShape.Cells("width").ResultIU = 14 
Application.DeferRecalc = blsDeferCalcOriginalValue 

Так как VBA создает и освобождает временный объект Cell в предыдущем коде, Visio обработает свою очередь на этом этапе.

В следующей последовательности Visio не будет обрабатывать очередь пересчета до тех пор, пока приложение не выполнит повторную операцию (или пользователь не выполнит какую-либо операцию).

Dim blsDeferCalcOriginalValue As Boolean 
blsDeferCalcOriginalValue = Application.DeferRecalc 
Application.DeferRecalc = True 
Set vsoCell1 = vsoShape.Cells("Height") 
Set vsoCell2 = vsoShape.Cells("Width") 
vsoCell1.ResultIU = 12 
vsoCell2.ResultIU = 14 
Application.DeferRecalc = blsDeferCalcOriginalValue 

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.