我有一个包含大量数据的电子表格,一些数据显示在气泡图中,点的大小也正确显示。
现在,我需要根据数据的状态更改颜色(和形状,但以后更改),数据的状态显示在行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或以下
答案 0 :(得分:1)
克里斯,试着改变
Set cl = valRange(p)
到
Set cl = valRange.Range("A" & p)
我不知道,为什么你的代码有效,但这个代码应该更具人性化。告诉我它是否有效。