除了道歉,我的问题已经变得非常好奇,我还找不到任何答案。
我的程序的一部分旨在搜索图表以查看一个系列是否已经存在,如果不存在,它会创建它。到目前为止,该程序很好而且花花公子。然而,在对 8 个不同的图这样做时,代码不仅很长,而且可能效率更低。所以,我决定尝试遍历一个数组。这是其中一个图形块的样子:
编辑:我没有具体说,但是 Z 是工作表的名称和系列的名称,正如代码前面定义的那样,所以这不是问题。
Sheets("A").Select
Count = ActiveChart.SeriesCollection.Count
Fail = 0
For c = 1 To Count
If ActiveChart.SeriesCollection(c).Name = Z Then
With ActiveChart.SeriesCollection(c)
.Values = Worksheets(Z).Range("AJ5:AJ45")
.XValues = Worksheets(Z).Range("AP5:AP45")
End With
Exit For
Fail = Fail - 1
End If
Fail = Fail + 1
Next c
If Fail = Count Then
ActiveChart.SeriesCollection.NewSeries
c = ActiveChart.SeriesCollection.Count
With ActiveChart.SeriesCollection(c)
.Values = Worksheets(Z).Range("AJ5:AJ45")
.XValues = Worksheets(Z).Range("AP5:AP45")
.Name = Z
.MarkerStyle = 1
.MarkerSize = 9
End With
End If
(下面还有 7 个,具有不同的工作表和 Y 值)。所以,我试过这个:
Dim SheetArr(0 To 7) As Sheets
Set SheetArr(0) = Sheets("A")
Set SheetArr(1) = Sheets("B")
ETC..
Dim RangeArr(0 To 7) As Range
Set RangeArr(0) = Range("AJ5:AJ45")
Set RangeArr(1) = Range("AK5:AK45")
ETC..
并开始一个循环,分别用 SheetArr(i) 和 RangeArr(i) 替换单个值,因此只存在一个代码块,但甚至没有一个图表开始绘制。我调暗阵列是错误的,还是这不可能?
(抱歉发了一个超长的帖子,只是想尽可能清楚。)