Ускорьте фильтрацию сводных таблиц кода VBA
У меня есть сводная таблица с полем сводки и содержит много элементов. У меня есть логика кода VBA, чтобы решить, должно ли значение сводки быть видимым или нет. Проблема в том, что Excel пересчитывает сводную таблицу для каждого показанного или скрытого поля, что делает его очень медленным. Я хотел бы что-то, где он пересчитывает только один раз, после того как все значения установлены. Я пытался использовать Application.Calculation = xlCalculationManual, но это не помогло.
код VBA, который я использую, что-то вроде этого
For i = 1 To oPivotField.PivotItems.Count
If (oPivotField.PivotItems(i).Name = "TestCondition") Then
oPivotField.PivotItems(i).Visible = True 'Recalulates pivot table
Else
oPivotField.PivotItems(i).Visible = False 'Recalulates pivot table
End If
Next
Я должен сделать это вручную, сняв флажок «показать все» и повторно проверить поля, которые я хочу видеть. Это приводит к тому, что Excel пересчитывает один раз и показывает только те элементы, которые я хочу видеть. Я хотел бы сделать то же самое с помощью кода VBA.
Я даже пытался использовать
Application.ScreenUpdating = False
Application.DisplayAlerts = False
но не сработало.