简体   繁体   中英

adding field to pivot table using VBA

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

Hello I am ading and removing fields from pivot table according to user drop down control. But in above code I am getting error message "unable to get pivotfields property of the pivottable class". I am very new to VBA excel, please help me figure it out

Change your code to this:

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

The problem is you are referencing the value of cell Bpos from Sheet hidy incorrectly.
To further improve your code, try passing the sheets to a variable like this:

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

This way, you will avoid Runtime errors .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM