我正在编写一个用于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
制造罗宾
答案 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