图纸/范围数组循环制作graphics

一边抱歉,我的问题已经变得相当的好奇,至今我还找不到任何答案。

我的程序中的一部分旨在search图表,以查看一个系列是否已经存在,如果不存在,则创build它。 截至目前该scheme是好的,花花公子。 但是,对于8个不同的图表,代码不仅时间长,而且可能效率更低。 所以,我决定尝试循环访问一个数组。 这是一个graphics块的样子:

编辑:我没有具体说,但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") 

等等..

 Dim RangeArr(0 To 7) As Range Set RangeArr(0) = Range("AJ5:AJ45") Set RangeArr(1) = Range("AK5:AK45") 

等等..

然后开始一个循环,分别用SheetArr(i)和RangeArr(i)replace单个值,所以只有一个代码块存在,但没有一个graphics甚至开始绘制。 我调暗arrays错了,还是这是不可能的?

(对不起,一个超长的post,只是尽量清楚。)

而不是试图创build一个表,我不知道你可以做,你可以创build一个包含表名称的string数组。

 Dim SheetNames(0 To 7) As String SheetNames(0) = "A" SheetNames(1) = "B" ... 

然后像这样使用它

 For IntSheet = 0 To 7 ThisWorkbook.Sheets(SheetNames(IntSheet)).Select ... Next 

地址注释关于范围:

我通过下面的代码,testing范围分配和适当的范围被选中

 Dim RangeArr(0 To 7) As Range Set RangeArr(0) = Range("AJ5:AJ45") Set RangeArr(1) = Range("AK5:AK45") RangeArr(0).Select 'Selects AJ5:AJ45 RangeArr(1).Select 'Selects AK5:AK45