Отдельное форматирование полей данных сводной таблицы не работает - NumberFormat применяется к одному экземпляру того же поля данных, а также ко второму - PullRequest
0 голосов
/ 14 февраля 2019

Таблица PowerPivot использует в области значений 2 экземпляр тех же данных.Как только он отображается как Сумма, и во второй раз эта же мера добавляется и отображается как «% разницы с предыдущим».

Общая идея состоит в том, чтобы автоматизировать форматирование полей данных с помощью пользовательских форматов, которые требуют окраски (таких как "[Color10] #. ## 0; [Красный] - #. ## 0; [Черный] -;"), поскольку они теряются при изменении полей в сводной таблице и не поддерживаются в модели данных Excel.

Когда я использую VBA для перечисления имен этих 2 полей данных, я получаю следующие имена:

[__Xl2].[Measures].[Sum of IMS Volume]
[Measures].[Sum of IMS Volume]

Excel 2019 в Windows.Это код, который ищет правильное форматирование поля данных в таблице Excel:

Sub set_pivottable_number_formatting()

    Dim a As Worksheet
    Dim i As Integer
    Dim pivotformattings As ListObject
    Dim field_in_pvtfrmt As Range

    Set pivotformattings = ActiveWorkbook.Worksheets("Parameters & Actions").ListObjects("pivot_fields_formatting")


    Set a = ActiveWorkbook.ActiveSheet


    For Each pvt In a.PivotTables
        For Each fld In pvt.DataFields
            Set field_in_pvtfrmt = pivotformattings.ListColumns("Pivot field name").DataBodyRange.Find(fld.Name, LookIn:=xlValues, LookAt:=xlWhole)
            If Not (field_in_pvtfrmt Is Nothing) Then
                'NOTE: FOR SOME CRAZY REASON THE LOGICAL CODE:
                ' fld.NumberFormat = field_in_pvtfrmt.Offset(0, 1).NumberFormat
                ' DOES NOT WORK! WITH TRIAL AND ERROR IT IS FOUND THAT FOLLOWING CODE WHICH ADDRESSES THE PIVOT FIELD VIA
                ' FIELD NAME IN PIVOT TABLE WORKS
                pvt.DataFields(fld.Name).NumberFormat = field_in_pvtfrmt.Offset(0, 1).NumberFormat
            End If
        Next fld
    Next pvt
    Set a = Nothing

End Sub

Код находит ссылки в таблице Excel для двух имен полей данных из сводной таблицы.Но в обоих случаях, когда числовой формат применяется в коде, применяется только форматирование чисел «первого» поля данных.Таким образом, он выходит за рамки правильного форматирования первого поля и не применяется форматирование второго поля.

Ошибка, функция и как ее обойти?

...