使用VBA向pivot表添加字段

时间:2014-03-17 04:31:20

标签: excel vba excel-vba

ActiveSheet.PivotTables("PivotTable5").AddDataField ActiveSheet.PivotTables( _
    "PivotTable5").PivotFields(range("hidy!B" & pos).Value), "Sum of " & range("hidy!B" & pos).Value, xlSum

您好我正在根据用户下拉控件删除数据透视表中的字段。但是在上面的代码中,我收到错误消息"无法获得pivottable类的pivotfields属性"。我是VBA excel的新手,请帮我搞清楚

1 个答案:

答案 0 :(得分:1)

将您的代码更改为:

ActiveSheet.PivotTables("PivotTable5").AddDataField ActiveSheet.PivotTables( _
    "PivotTable5").PivotFields(Sheets("hidy").Range("B" & pos).Value), _
    "Sum of " & Sheets("hidy").Range("B" & pos).Value, xlSum

问题是您从Bpos错误地引用了单元格Sheet hidy的值 要进一步改进代码,请尝试将工作表传递给如下变量:

Dim ws1 As WorkSheet, ws2 As Worksheet

Set ws1 = Thisworkbook.Sheets("Sheetwithpivot") 'change to your actual sheet
Set ws2 = Thisworkbook.Sheets("hidy") 'sheet with dropdown

ws1.PivotTables("PivotTable5").AddDataField ws1.PivotTables( _
    "PivotTable5").PivotFields(ws2.Range("B" & pos).Value), _
    "Sum of " & ws2.Range("B" & pos).Value, xlSum

这样,您将避免Runtime errors