1

我正在尝试自动化一个到目前为止我一直在 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
4

1 回答 1

0

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

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

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

希望这可以帮助。

于 2015-08-06T13:27:30.537 回答