根据单元格向数据透视表添加数据字段

时间:2016-10-05 22:01:20

标签: excel vba pivot-table

我正在尝试创建一个交互式数据透视表,允许用户选择要显示的数据字段(即赚取的美元,花费的金额)。我有以下代码可以使用

Sub AddMoreFields()

 With ActiveSheet.PivotTables("PivotTable1")
 .AddDataField ActiveSheet.PivotTables( _
 "PivotTable1").PivotFields("Dollars_spent")
 End With

End Sub

但是,我想将其更改为以下内容,以便用户可以选择要显示的数据

Sub AddMoreFields()

 With ActiveSheet.PivotTables("PivotTable1")
 .AddDataField ActiveSheet.PivotTables( _
 "PivotTable1").PivotFields(Range("d21"))
 End With

End Sub

范围(" D21")实际上是一个下拉列表,用户可以在其中选择赚取的美元和花费的金额。但是,当我尝试使用这个时,我得到一个错误,指出Rang(" D21")不是枢轴字段。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

Sub adddynamic()
Dim pt As PivotTable
Dim pf As PivotField
Dim f As String

f = Range("d21")
Set pt = ActiveSheet.PivotTables("PivotTable1")
Set pf = pt.PivotFields(f)
pt.AddDataField pf, "Sum of " & f, xlSum

End Sub