使用VBA根据数组中的ID值更改条的颜色

我创build了一系列列表图表,显示一个度量标准中每个标识的性能,但是想要突出显示另一个相关标准中属于最佳performance者的列。 我没有相关度量标准的数据,只有一个列表(在Excel中,在同一张表上)的顶级执行者的ID。

使用条件格式可以轻松地突出显示顶级执行者列表中包含的ID,但是我也想更改列图中这些ID列的颜色,而无需手动单击来更改每个列的颜色。

这个代码(来自这个有价值的线程)似乎应该能够做我正在寻找的东西,但是我对VBA不够熟悉,无法理解如何将数组放在if条件中,或者将其应用于所有图表工作表/工作簿。

Dim c As Chart Dim s As Series Dim iPoint As Long Dim nPoint As Long Set c = ActiveChart Set s = c.SeriesCollection(1) nPoint = s.Points.Count For iPoint = 1 To nPoint If s.XValues(iPoint) = "avg" Then s.Points(iPoint).Interior.Color = RGB(255, 0, 0) End If Next iPoint 

我是一名Stata / SAS程序员,对VBA不太熟悉,但是对于类似的东西有信心

 local list=R26C2:R26C12 foreach worksheet in (all worksheets) { foreach bar in (all_graphs of &worksheet) { color &bar=blue if id in(&list) } } 

不应该给我那么多麻烦,因为我正在VBA中尝试这样做。 任何帮助,将不胜感激。 谢谢!

像这样的东西应该工作(未经testing)

 Dim rngTP As Range Set rngTP = Range("A1:A10") 'for example nPoint = s.Points.Count For iPoint = 1 To nPoint If Not IsError(Application.Match(s.XValues(iPoint), rngTP, 0)) Then s.Points(iPoint).Interior.Color = RGB(255, 0, 0) End If Next iPoint