基于行标签(轴字段)的数据透视表中的色点(条)

时间:2013-02-21 17:06:13

标签: excel vba excel-vba excel-2010 pivot-table

我正在尝试自动执行到目前为止我在Excel 2010中手动执行的过程。我经常创建数据透视图。这些图表上的系列之一显示为条形。我根据数据透视表的一个行标签更改每个条形的填充颜色。例如,如果行标签=“GEO”,我将条形的填充颜色更改为绿色。

我确信通过VBA可以自动执行此过程。到目前为止,这是我的代码。当我运行这个宏时,它停在If语句的第一行并给出此错误。编译错误:预期的数组。任何人都可以给我一些关于如何使这个代码工作的建议吗?

Sub By_Rig_PC_Coloring()

For i = 1 To ActiveChart.SeriesCollection(2).Points.Count
    ActiveChart.SeriesCollection(2).Points(i).Select
    If xlRowField("MFR") = "GEO" Then
        Selection.Format.Fill.Forcolor.RGB = RGB(0, 176, 80)
    End If
Next i

End Sub

1 个答案:

答案 0 :(得分:0)

据我所知,您无法访问与当前Point关联的X轴标签。但这是一个PIVOT图表,因此您可以使用数据透视表来获取所需的信息。

要点是DataField的PivotItems,Series是ColumnFields,X标签是RowFields。 因此SeriesCollection(2).Points(10)将为pvtYourPivotTable.ColumnFields(2).DataRange.Cells(10)(假设您只有一个DataField,否则DataRange将是多列,您必须为此进行调整)。 因此,一旦您在带有Point的数据透视表assosacietd中有一个单元格,标签就会位于Intersect(pvtYourPivotTable.RowFields("MFR").DataRange, pvtYourPivotTable.ColumnFields(2).DataRange.Cells(10).EntireRow。您也可以使用Offset或其他方法。

以下是另一种基于X标签着色图表栏的方法:Peltier Tech Blog没有VBA。

希望这有帮助。