在循环中添加图例颜色

时间:2017-02-17 08:36:31

标签: excel vba

我对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

这可能是小菜一碟,所以我希望这对你来说很容易解决。伙计们:)

最好的问候

朗尼

1 个答案:

答案 0 :(得分:1)

您的代码含糊不清。你想循环几个图表,但从

开始
with activechart

因此,您的系列名称,值和颜色仅适用于ActiveChart。顺便说一句,你使用With selection,但之前你并没有.Select。以下是一些可以改变的代码:

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(强制执行变量声明) 编辑:只有最后三个图表