Как остановить перерасчет сводной таблицы после изменения меры через VBA - PullRequest
0 голосов
/ 16 июня 2020

Используя макросы VBA, мне нужно изменить формулы измерения в модели данных в Excel. Отрезан код, который изменяет формулу каждой меры:

ActiveWorkbook.Model.ModelMeasures(1).Formula = textOfNewMeasureFormula

Сразу после того, как макрос изменяет каждую конкретную меру, Excel начинает пересчитывать сводную таблицу. В случае больших данных это может занять много времени и так неудобно. Было бы здорово изменить все необходимые меры и после всех изменений запустить пересчет. Но я не могу найти решение для этого.

Этот код не работает, потому что он касается обновления данных:

activeSheet.PivotTables(1).ManualUpdate = true

Он не влияет на расчет после измерения формулы изменить.

Это тоже не помогает, потому что речь идет о формулах в Excel Sheets:

Application.Calculation = xlCalculationManual

На всякий случай - я не проверял

Application.Visible = false

потому что в любом случае это неприемлемо для моего случая. Заранее большое спасибо.

1 Ответ

0 голосов
/ 16 июня 2020

В настройках (Файл-> Параметры-> Формула) есть опция для расчета формулы. Если вы измените его на «ручной», это отключит автоматические c вычисления. Однако вам нужно управлять обновлением вручную, вы можете использовать для этого кнопку «F9». Если вы хотите управлять этим параметром в макросе, вы можете использовать:

Application.Calculation = xlManual

, чтобы переключить метод расчета на ручной

*
Application.Calculation = xlAutomatic

, чтобы переключить метод расчета на автоматический c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...