У меня есть сводная таблица, которая предназначена для суммирования моих данных на двух разных уровнях агрегирования в зависимости от выбора, сделанного пользователем.
В исходном состоянии вот списки feild для моей сводной таблицы:
Когда пользователь изменяет определенные параметры, следующий код скрывает IndexA из списка полей:
Sheets("test").PivotTables("test").PivotFields("IndexA").Orientation = xlHidden
И когда изменения отменяются, следующий код снова делает IndexA видимым:
Sheets("test").PivotTables("test").PivotFields("IndexA").Orientation = xlRowField
Результирующий список полей теперь выглядит следующим образом с измененным порядком элементов списка полей:
Обратите внимание, что в списке полей ROWS IndexA теперь находится внизу, а не вверху, что нарушает согласованность и удобочитаемость моего отчета.
У меня вопрос ... есть ли способ контролировать порядок списка сводных полей через VBA? или альтернативный способ добиться того же результата, который я ищу? (включение и выключение определенного элемента в списке полей с сохранением порядка)
Я ценю любую помощь / совет, который кто-либо может предоставить по этой теме.
1 ответ
Это код для установки позиции:
With Sheets("test").PivotTables("test").PivotFields("IndexA")
.Orientation = xlRowField
.Position = 1
End With
Для справки в будущем я нашел это с помощью средства записи макросов и сделал это вручную, так как я не мог вспомнить синтаксис с головы до ног. Просто укажите на это, потому что запись ручных действий может оказаться очень удобной для поиска синтаксиса :)
Похожие вопросы
Новые вопросы
excel
Только для вопросов по программированию объектов или файлов Excel или по разработке формул. Вы можете комбинировать тег Excel с тегами и вопросами VBA, VSTO, C#, VB.NET, PowerShell, OLE и другими тегами и вопросами, связанными с программированием, если это применимо. НЕ используйте с другим программным обеспечением для работы с электронными таблицами, например [google-sheets].