所有人
在我正在处理的数据透视表中,源数据具有货币值和数量。我在数据透视表中有一个过滤器,以便选择要在数据透视表中查看的数据类型,是“ 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
答案 0 :(得分:1)
它是“ 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