Код, представленный в потоке, до сих пор работает, но его необходимо будет повторно запустить в будущем: в любое время, когда количество строк или столбцов в своде изменяется, вы можете сидеть с цветными строками или столбцами, где нет поворот или цветные ячейки в неправильной части стержня.
Предлагаю вам взглянуть на встроенные сводные стили Excel, выбрать ближайший к тому, что вам нужно, и использовать такой код, чтобы изменить строки заголовков и общую итоговую строку. Нет необходимости манипулировать диапазонами ячеек, потому что в следующий раз вы можете отключить общую строку (ради аргумента), но диапазон будет по-прежнему окрашен.
Я записал макрос и удалил все избыточные строки кода, чтобы помочь вам увидеть, какие изменения. Я также удаляю одну полезную строку (.TintAndShade =) и заменяю ее выражением «ColorIndex =», чтобы заставить оттенок синего, который вам кажется предпочтительным.
После этого вы должны иметь тот же стиль, что и все остальные (существующие и новые) опорные точки в одной книге. Вы даже можете сделать это по умолчанию. Не нужно снова запускать код для форматирования, когда ваш свод [обновляется] охватывает другой диапазон ячеек.
Вы можете выбрать другой стиль один из собственной палитры и использовать свое собственное имя для копии, до тех пор, как вы найти и заменить все соответствующие строки в примере коде ниже или записывать свои собственные действия:
Sub ColourPivotStyleForThisBook()
'duplicate blue/medium pivot style from template
ActiveWorkbook.TableStyles("PivotStyleMedium2").Duplicate ("PivotStyleMedium2v2" _
)
With ActiveWorkbook.TableStyles("PivotStyleMedium2v2")
.ShowAsAvailablePivotTableStyle = True
.ShowAsAvailableTableStyle = False
.ShowAsAvailableSlicerStyle = False
.ShowAsAvailableTimelineStyle = False
End With
'now modify header's style (fill) (font colour is white/automatic already)
With ActiveWorkbook.TableStyles("PivotStyleMedium2v2").TableStyleElements(_
xlHeaderRow).Interior
'only one/two lines are changing the colours
' .TintAndShade = -0.249977111117893
.ColorIndex = 49
End With
'now modify grand total row's style (fill) (font colour is white/automatic already)
With ActiveWorkbook.TableStyles("PivotStyleMedium2v2").TableStyleElements(_
xlTotalRow).Interior
'only one/two lines are changing the colours
' .TintAndShade = -0.249946592608417
.ColorIndex = 49
End With
End Sub
Если результат не в том, что вам нужно, просто выберите часть стержня в книге, коснитесь вкладки «Дизайн» на ленте «Сводные инструменты», щелкните правой кнопкой мыши на том, который создал ваш код (он должен быть в раздел «Пользовательский» вверху) и нажмите «Удалить». Надеюсь это поможет.
(Вы можете даже использовать такой код выше, чтобы настроить сводные таблицы стилей в других книгах, которые не имеют PivotTables еще.)
Встроенные в стиле я выбрал в моем исходном коде, уже использует белым, как цвет шрифта поэтому Я конкретно не адресую цвет шрифта в своем коде. В зависимости от стиля, с которого вы начинаете, вам может потребоваться добавить строку здесь и там, чтобы изменить цвет шрифта. – WdW