#excel #vba
Вопрос:
Я пытаюсь написать код vba, который будет перебирать все ряды на диаграмме и окрашивать эти ряды в зависимости от значений в таблице на этом листе. Это один из моих первых кодов VBA, так что я очень новичок. Я выполнил часть цикла:
Dim cht As Chart Set cht = ActiveSheet.ChartObjects("Chart 1").Chart 'loop through series in chart to format lines Dim ser As Series Dim i As Integer Dim rcode As Integer Dim gcode As Integer Dim bcode As Integer i = 1 For Each ser In cht.SeriesCollection MsgBox "color" amp; i rcode = 255 gcode = 255 bcode = 150 Format.Line .Visible = msoTrue .ForeColor.ObjectThemeColor = RGB(rcode, gcode, bcode) .ForeColor.TintAndShade = 0 .ForeColor.Brightness = 0 .Transparency = 0 End With i = i 1 Next ser
Теперь я пытаюсь добавить часть, в которой она меняет цвет для каждой серии. Я пытался написать это несколькими способами, но продолжаю получать ошибки несоответствия объектов. На листе, на котором изображена эта диаграмма, названия серий находятся в столбце K, справа от них находится идентификатор, на основе которого я хочу использовать цветовой код. Например, серия 15 называется «15», а рядом с 15 в столбце K стоит буква A. Это A указывает на то, что я хочу, чтобы она была нанесена синим цветом. Я понимаю, что как только я назначу переменную этому идентификатору, простое утверждение if приведет меня к правильному цвету. Любая помощь будет признательна!
Комментарии:
1. Я добавил эту часть кода, также я меняю цветовой индекс на rgb, но мне нужно просмотреть код rgb для каждой серии на другой вкладке в Excel.
2. Попробуйте
With ser.Format.Line
вместоFormat.Line