基于行标签(轴字段)的透视图中的颜色点(条)

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

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

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 

据我所知,你不能访问与当前Point关联的X轴标签。 但是这是一个PIVOT图表,所以你可以使用你的数据透视表来获得你需要的信息。

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

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

希望这可以帮助。