Excel VBA通​​过string名称参考图表系列集合

我有需要引用一个名字的系列集合。 系列collections的MSDN对象模型页面可以使用索引或名称。 但是,当我尝试使用stringvariables时,我得到错误1004“无效的参数”:

Dim sSeriesName As String dim aRootCats() as string Dim cSeriesCol As SeriesCollection For x = 0 To UBound(aRootCats) sSeriesName = aRootCats(x) Set cSeriesCol = cChart.ChartGroups(1).SeriesCollection(sSeriesName) Next x 

我也尝试了以下内容:

  sSeriesName = CStr(aRootCats(x)) ' just in case, because I filled this array with variant data type earlier Set cSeriesCol = cChart.ChartGroups(1).SeriesCollection(sSeriesName) 

  Set cSeriesCol = cChart.ChartGroups(1).SeriesCollection(aRootCats(x)) 

  Set cSeriesCol = cChart.ChartGroups(1).SeriesCollection("Product Support") 

更新:我也遇到了同样的错误循环在系列集合:

 For c = 1 To cChart.ChartGroups(1).SeriesCollection.Count Set cSeriesCol = cChart.ChartGroups(1).SeriesCollection(c) Next c 

有任何想法吗?

非常感谢。

因为您使用ChartGroup而不是Chart,所以必须使用SeriesCollectionItem属性,并且必须传递一个变体。 使用任一:

 cChart.ChartGroups(1).SeriesCollection.Item(1) 

要么:

 cChart.ChartGroups(1).SeriesCollection.Item(CVar(sSeriesName)) 

(或者将variables声明为Variant而不是String)