根据不同列中的值更改excel中气泡图的颜色和形状

时间:2017-11-14 11:49:31

标签: excel vba colors bubble-chart

我有一个包含大量数据的电子表格,一些数据显示在气泡图中,点的大小也正确显示。

现在,我需要根据数据的状态更改颜色(和形状,但以后更改),数据的状态显示在行Z中,值从1(红色)到3(绿色)。

我的VBA技能现在真的生锈了,我无法弄清楚为什么以下代码只会改变第一点的颜色?

Option Explicit
Sub ColortheFingpoints()
    Dim cht As Chart
    Dim srs As Series
    Dim pt As Point
    Dim p As Long
    Dim valRange As Range, cl As Range
    Dim myColor As Long

Set cht = ActiveSheet.ChartObjects(1).Chart
Set srs = cht.SeriesCollection(1)
Set valRange = Range("Z8:Z10")

    For p = 1 To srs.Points.Count
    Set pt = srs.Points(p)
    Set cl = valRange(p)

    With pt.Format.Fill
        .Visible = msoTrue
        Select Case LCase(cl)
            Case "1"
                myColor = RGB(255, 0, 0)
            Case "2"
                myColor = RGB(255, 140, 0)
            Case "3"
                myColor = RGB(0, 128, 0)
        End Select

        .ForeColor.RGB = myColor

    End With
Next

End Sub

编辑1:

问题似乎是它只运行一次因此只查看Cell Z8而不是Z9或以下

1 个答案:

答案 0 :(得分:1)

克里斯,试着改变

Set cl = valRange(p)

Set cl = valRange.Range("A" & p)

我不知道,为什么你的代码有效,但这个代码应该更具人性化。告诉我它是否有效。