select透视列的第一项

我正在开发一个代码,以将绝对值的数据透视表转换为索引。

Private Sub Index_Change() Dim p As PivotTable Dim f As PivotField Set p = Sheets("1").PivotTables("2") With p.PivotFields("Sum of 1") .Calculation = xlPercentOf .BaseItem = "" .NumberFormat = "0,00%" End With End Sub 

我正在寻找一种方法来select枢轴列的第一个单元格作为.BaseItem

我通过简单地logging一个macros,给我看适当的代码,发现了这个答案:

 Dim pt As PivotTable Dim pfI As PivotField, pfB As PivotField Set pt = ActiveSheet.PivotTables("PivotTable1") 'adjust to your table Set pfI = pt.PivotFields("myIndexColumn") 'adjust to your table Set pfB = pt.PivotFields("myBaseField") 'adjust to your table With pfI .Calculation = xlPercentOf .BaseField = pfB.Name .BaseItem = pfB.PivotItems(1).Name .NumberFormat = "0.00%" End With 

为了清楚起见,macroslogging器没有显示上面的代码完全符合书面,但我调整了它使它更加dynamic的编码。 logging器显示的代码如下(我留在我的数据透视表字段名称):

 With ActiveSheet.PivotTables("PivotTable3").PivotFields("Loan Amounts") .Calculation = xlPercentOf .BaseField = "Loan Type" .BaseItem = "C&I" .NumberFormat = "0.00%" End With