图纸/范围数组循环制作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