根据不同列中的值,在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:

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

克里斯,试着改变

 Set cl = valRange(p) 

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

我不知道,为什么你的代码工作,但这个应该是更可读的。 告诉我,如果它的作品。