在循环中添加图例颜色

我是相当新的vba编程,所以忍受着我。

我正在图中为这两个图绘制线条和标记,但是我的脚本只着色了第一个。 如何在循环中使用select(或不同的东西)?

With ActiveChart l = 1 Do Until l = 3 .SeriesCollection.NewSeries .SeriesCollection(l).Name = Sheets("Data").Range("A" & 8 + l) .SeriesCollection(l).XValues = Sheets("Data").Range("B7:F7") .SeriesCollection(l).Values = Sheets("Data").Range("B" & 19 + l + LotAmount & ":F" & 19 + l + LotAmount) With Selection .Border.LineStyle = xlContinuous .Border.Color = RGB(255, 0, 0) .MarkerBackgroundColor = RGB(255, 0, 0) .MarkerForegroundColor = RGB(255, 0, 0) End With l = l + 1 Loop End With 

这可能是小菜一碟,所以我希望这是一个简单的解决scheme,你们伙计:)

最好的祝福

朗尼

你的代码是不明确的。 你想循环几个图表,但开始

 with activechart 

所以你的系列名称,值和颜色只适用于ActiveChart 。 顺便说一下,你用With selection但你没有真正With selection任何事情之前。 这里有一些代码可以改变一下:

 Option Explicit Dim sht as worksheet Dim cht as ChartObject Set sht = Thisworkbook.Sheets("Your sheet name") ' Sheet "Data"? For Each cht in sht.chartObjects If cht.name = "Chart4" or cht.name = "Chart5" or cht.name = "Chart6" Then With cht.chart.SeriesCollection[(l)] .NewSeries .Name = sht.range("A" & 8 [+ l]) .XValues = sht.Range("B7:F7") .Values = Sheets("Data").Range("B" & 19 [+ l + LotAmount] & ":F" & 19 [+ l + LotAmount]) End With With cht.chart.ChartArea .Border.LineStyle = xlContinuous .Border.Color = RGB(255, 0, 0) .MarkerBackgroundColor = RGB(255, 0, 0) .MarkerForegroundColor = RGB(255, 0, 0) End With End If Next 

没有尝试,但你可以用这个作为开始。 不要犹豫,任何疑问。 希望这可以帮助!

PS:始终使用Option Explicit(使variables声明为必需)编辑:只有最后三个图表