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



我有一个电子表格,里面有很多数据,一些数据显示在气泡图中,点的大小也正确显示。

现在,我需要根据数据的状态更改颜色(和形状,但稍后再更改(,数据显示在 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:

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

克里斯,尝试改变

Set cl = valRange(p)

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

我不知道,为什么你的代码可以工作,但这个代码应该更易于阅读。告诉我它是否有效。

最新更新