我正在编写代码以循环访问数据透视表中的每个数据透视表字段,然后根据源名称更改“自定义名称”。当我记录更改列标题我收到下面的代码:使用VBA在数据透视表中根据源名称更改列标题
Range("J5").Select
ActiveSheet.PivotTables("PivotTable1").PivotFields("Man-Hours Oct-16").Caption _
= "Man-Hours Nov-16"
的问题是,定制的名称改变每个月,所以我想指的是基于该源名枢轴场,不标题。我写穿过每个枢轴字段成功循环和标识源代码,但是,我收到时,它试图修改字幕的错误消息:
Dim CurrentDate As Date
Dim CurrentMonth As String
Dim CurrentYear As String
Dim pf as PivotField
CurrentDate = Range("CurrentDate")
CurrentMonth = Format(CurrentDate, "MMM")
CurrentYear = Format(CurrentDate, "YY")
For Each pf In PivotSheet.PivotTables("PivotTable1").PivotFields
'Total Forecast
If pf.SourceName = "Man-Hours 0" Then
pf.Caption = "Man-Hours " & CurrentMonth & "-" & CurrentYear
ElseIf pf = "Cost ($$) 0" Then
pf.Caption = "Cost ($$) " & CurrentMonth & "-" & CurrentYear
End If
Next pf
上面的代码接收错误:“运行时间错误'0123':pf.Caption
行上的'无效过程调用或参数'。
我也尝试使用pf.LabelRange
,以及和我收到的错误:“运行时错误‘1004’:无法获取透视字段类的LabelRange财产”
我一直在寻找周围试图找到解决方案我没有用数据透视表编写太多的代码,所以我不知道我是否应该使用透视项目?我发现所有代码都改变了列标题,它基于前面的标题名称。