Я пытаюсь пройти каждую точку на xy-диаграмме с несколькими сериями и изменить цвет в зависимости от конкретного условия if (если в определенной ячейке есть значение).
Это сводит меня с ума, потому что это очень противоречиво (иногда просто удаляет границы и остаются заполнители, иногда просто удаляет заливку и остаются границы).
Выписка ниже.
Я пробовал с:
'MarkerBackgroundColor = rgb(255,255,255)
'MarkerForegroundColor = rgb(255,255,255)
Также попытался сделать это правдой, а затем вернуться к ложному (кажется, работает для .line ...)
К вашему сведению - условие If
работает, я проверил с помощью msgbox и оно запускается в правильное время (в случае, если вам это нужно - он читает пустые значения ячеек, начиная с строки 3, и переходит на 4 столбца при каждой итерации i, начиная с столбца. 7).
Код ниже:
Dim ws as Worksheet
Dim cht as Chart
set ws = Worksheets("Sheet 1")
Set cht = ws.ChartObjects("Chart_Name")
For i = 2 To 8
For x = 1 To cht.SeriesCollection(i).Points.Count
If ws.Cells(x + 2, i + 5 + (3 * (i - 2))).Value = "" Or ws.Cells(x + 2, i + 5 + (3 * (i - 2))).Value = " " Then
With cht.SeriesCollection(i).Points(x)
.Format.Fill.ForeColor = rgb(255, 255, 255)
.Format.Line.Visible = msoFalse
End With
Else
End If
Next x
Next i