Excel 在循环中添加图例颜色

Excel 在循环中添加图例颜色,excel,vba,Excel,Vba,我对vba编程相当陌生,所以请容忍我 我正试图在我的图表中为这两个图绘制红色的线条和标记,但我的脚本只为第一个图着色。如何在循环中与选择(或其他内容)一起使用 With ActiveChart l = 1 Do Until l = 3 .SeriesCollection.NewSeries .SeriesCollection(l).Name = Sheets("Data").Range("A" & 8 + l) .SeriesCol

我对vba编程相当陌生,所以请容忍我

我正试图在我的图表中为这两个图绘制红色的线条和标记,但我的脚本只为第一个图着色。如何在循环中与选择(或其他内容)一起使用

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
这可能是小菜一碟,所以我希望这对你们来说是一个简单的解决办法:)

致意


朗尼你的代码模棱两可。您希望循环浏览多个图表,但从

with activechart
因此,序列名称、值和颜色仅应用于
ActiveChart
。顺便说一句,您将
与选择一起使用
,但实际上并不是
。以前选择过任何东西。以下是一些代码,您可以稍作更改:

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:始终使用选项显式(强制变量声明)
编辑:只有最后三张图表

谢谢你的回答,你写的很有意义。我对上述代码有一个问题。我的工作表上有6个活动图,只需要将其应用于最后三个(图4、图5和图6)。当我读到你的代码时,它会改变所有图表?@JiheL你可以使用
选择Case cht.name
,然后使用
Case“Chart4”、“Chart5”、“Chart6”
@ShaiRado是的,你是对的,但这不是正确的方法,因为我们在每个
案例中都会有3倍相同的代码