У меня есть электронная таблица с большим количеством данных, некоторые данные отображаются в виде пузырьковой диаграммы, размер точек также отображается правильно.
Теперь мне нужно изменить цвет (и форму, но это на потом) в зависимости от состояния данных, которые отображаются в строке 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 или следующие