VBA中的Excel Diagramm系列名称

时间:2011-08-04 09:15:19

标签: excel vba diagramming

我正在编写一个用于Excel xy-Diagramm的Makro 图表几乎是正确的,但我有数据系列名称; 我已经尝试过所有系列并比较名称。 没有错误,但它没有用。

代码就是这样:

For a=1 to Count
  If ActiveChart.SeriesCollection(Count).Name = Range("A2").Value Then
    Name = true
  End If
  a = a + 1
Next

If Name = false Then
  ActiveChart.SeriesCollection.NewSeries
End If
ActiveChart.SeriesCollection(Count).Name = "='Tasks'!$D$" & i
ActiveChart.SeriesCollection(Count).XValues = "='Tasks'!$B$" & i
ActiveChart.SeriesCollection(Count).Values = "='Tasks'!$C$" & i

制造罗宾

1 个答案:

答案 0 :(得分:1)

这里有一些问题。

首先,你总是在看同一个系列!我想您希望在Count声明中将a替换为If

If ActiveChart.SeriesCollection(a).Name

其次,一旦纠正,即使您的Name变量在某个时刻设置为True,它也可能会在False循环后重置为For...Next继续迭代系列集的其余部分。要防止这种情况,请添加Exit For,如下所示:

For a = 1 To Count
  If ActiveChart.SeriesCollection(a).Name = Range("A2").Value Then
    Name = True
    Exit For
  End If
  a = a + 1
Next

另外,我怀疑你没有将Name声明为布尔变量,所以默认情况下它是一个Variant,所以它的值不是False开始的!您应该使用Dim Name as Boolean在过程顶部声明变量,然后如果您希望Name默认为False,则应该明确说明:放置{{1}在循环之前。而且,Name = False对变量来说是一个可怕的名字......所以Name唉!我认为你的代码应该是这样的:

Count