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的新手,请帮我搞清楚
答案 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
。