Возможно, установите Application.Calculation = xlCalculationManual
и затем вернитесь к Application.Calculation = xlCalculationAutomatic
в конце.
Это предотвратит обновление сводной таблицы каждый раз, когда вы что-то делаете с ней. Я думаю, это странно, если это освежает только потому, что вы играете с цветом, но это превосходно, а превосходство может быть странным.
Sub Color()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With ActiveSheet.PivotTables("Calendar").PivotFields("Month")
.PivotItems("jan").LabelRange.Interior.Color = RGB(255, 255, 0)
.PivotItems("jan").DataRange.Interior.Color = RGB(255, 255, 0)
.PivotItems("feb").LabelRange.Interior.Color = RGB(255, 153, 0)
.PivotItems("feb").DataRange.Interior.Color = RGB(255, 153, 0)
End With
'Force a calc before toggling calculation back on
Application.Calculate
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Вы также можете отключить Application.EnableEvents
, пока он работает, только для того, чтобы покрыть ваши базы. Это предотвратит запуск любого другого кода на листе, вызванного событием. Как Worksheet_SelectionChange
или что у тебя.