Ответ описан в объяснении от Microsoft PivotField.Subtotals
.
Если вы хотите отключить все промежуточные итоги, вы можете либо установить Automatic
промежуточные итоги равны True
(отключает все остальные типы) и снова False
, или вы устанавливаете все 12 типов на False
с заданной нотацией массива.
Промежуточные итоги могут быть определены только дляполя данных.Таким образом, вы не должны перебирать все PivotFields
, а RowFields
(или ColumnFields
).Этим вы также можете опустить On Error Resume Next
.
Поскольку ColumnGrand
и RowGrand
определены один раз для поворотной таблицы, я поместил его перед циклом.
With pvttbl
.RowAxisLayout xlTabularRow
.RepeatAllLabels xlRepeatLabels
' defined once per pivottable:
.ColumnGrand = False
.RowGrand = False
' use RowFields only:
For Each campos In .RowFields
' either this:
campos.Subtotals(1) = True ' Automatic on (= all other off)
campos.Subtotals(1) = False ' Automatic also off
' or that (all 12 off):
'campos.Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False)
Next campos
End With