Формат содержимого сводной таблицы - PullRequest
0 голосов
/ 05 ноября 2019

каждый,

В этой сводной таблице, над которой я работаю, исходные данные имеют денежные значения и количества. У меня есть фильтр в моей сводной таблице, чтобы выбрать, какой тип данных я хочу видеть в моей сводной таблице, будь то «V» или «Q».

Моя проблема заключается в том, что мне нужно отформатировать содержимоеповоротная таблица в соответствии с типом информации, которую я вижу: для денежных значений мне нужно видеть содержимое в формате "# ###. 00 €";для количественных значений в «#, ## 0».

Я уже пытался использовать свойство DataRange для сводных полей (как вы можете видеть в коде) и даже пытался использовать NumberFormat непосредственно в сводных полях, ноничего из этого не сработало.

Вы предлагаете что-нибудь, чтобы решить эту проблему?

Dim vp As Workbook
Dim type_qv As String
Dim chart_pt As PivotTable
Dim pf As PivotField

Set vp = ThisWorkbook
Set chart_pt = vp.Sheets("Chart").PivotTables("VP_table")

        'this detects what type of data is being used
type_qv = vp.Sheets("Chart").Range("B2").Value

If type_qv = "Q" Then
    For Each pf In chart_pt.RowFields
        pf.DataRange.NumberFormat = "#,##0"
    Next
End If

If type_qv = "V" Then
    For Each pf In chart_pt.RowFields
        pf.DataRange.NumberFormat = "# ###.00 €"
    Next
End If

1 Ответ

1 голос
/ 05 ноября 2019

Это «сумма Q», но вы не хотите смотреть на описание, потому что они могут изменить его, и они могут переместить таблицу, и они могут показать оба поля.

Dim chart_pt As PivotTable, df As PivotField
Set chart_pt = ActiveSheet.Range("A3").PivotTable
For Each df In chart_pt.DataFields
    Select Case True
        Case df.Name Like "*Q"
            df.DataRange.NumberFormat = "#,##0"
        Case df.Name Like "*V"
            df.DataRange.NumberFormat = "# ###.00 €"
        Case Else
            df.DataRange.NumberFormat = "# ###.00"
    End Select
Next
...