选择枢轴列的第一项

时间:2015-10-30 11:10:48

标签: excel vba excel-vba

我正在研究一个代码,用于将数据库字段从绝对值切换到索引。

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

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

1 个答案:

答案 0 :(得分:1)

我通过简单地录制一个显示适当代码的宏来找到这个答案:

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

为了清楚起见,宏录制器没有完全按照书面形式向我显示上面的代码,但我对其进行了调整以使编码更具动态性。记录器显示的代码如下(我在数据透视表字段名称中留下):

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