Вопрос по excel, charts, vba – Изменить цвет точек в диаграмме Excel VBA

6

У меня есть этот график, на котором, если какая-либо точка на графике превышает определенный предел, ее цвет должен измениться.

enter image description here


Может ли кто-нибудь предложить мне, как получить график в VBA, а затем применить такое условие, например, я хочу изменить цвет самой высокой точки на приведенном выше графике. Любая помощь будет высоко оценен.

записать макрос изменения цвета точки ?? Aprillion

Ваш Ответ

2   ответа
13

ActiveWorkbook.Sheets("Sheet1").ChartObjects("Chart1").Chart.SeriesCollection(1)

Цвет каждой точки.Points(PointNumber).Interior.Color

Количество баллов, которое вам нужно перебрать, равно.Points.Count

Значение каждой точки.Points(PointNumber).Value

цвета самих маркеров (применяется только к линейным, точечным и радарным диаграммам):

.Points(PointNumber).MarkerBackgroundColor = RGB(0,255,0)    ' green
.Points(PointNumber).MarkerForegroundColor = RGB(255,0,0)    ' red
.Points(PointNumber).MarkerStyle = xlMarkerStyleCircle ' change the shape
Спасибо за вашу помощь. но не могли бы вы уточнить, какова цель .seriescollection (1) здесь? и как объединить эти примеры кодов для достижения моей цели? я новичок в VBA, так что не понял правильно. james
seriescollection(1) это список первого набора ваших точек данных, используемых при построении графика. Обведите все точки, проверьте значение и измените цвет, если он соответствует вашим критериям
Не меняет цвет. james
сообщение об ошибке или не меняет цвет?
ActiveWorkbook.Sheets ("LDL-C"). ChartObjects ("Chart 1047"). Chart.SeriesCollection (1) .Points (1) .Interior.Color = RGB (20, 20, 20) вы видите какие-либо проблемы в этом? это у меня не работает ?? james
5

Давайте возьмем другой подход, который не требует какого-либо кода.

Предположим, ваши данные находятся в столбцах A (порядковый номер или время) и значение B, начиная с A2 и B2, так как ваши метки находятся в A1 и B1. Мы добавим серию на диаграмму, которая включает любые отклоняющиеся значения из столбца B. Эта серия будет рисовать маркер перед любыми отклоняющимися точками, так что исходная точка все еще будет присутствовать, и вместо переформатирования этой точки новая серия отображает точка.

В ячейку C1 введите «Deviant».

В ячейке C2 введите формулу, которая определяет отклоняющуюся точку, например:

=IF(AND(B2>upperlimit,B2

Это помещает значение в столбец C, если столбец B превышает верхний и нижний пределы, в противном случае он помещает # N / A в столбец C, # N / A не приведет к построению точки.

Скопируйте данные в столбце C, выберите диаграмму и вставьте Special как новую серию. Отформатируйте эту серию так, чтобы в ней не было ни строки, ни какого-либо яркого маркера, который вы хотите использовать для обозначения точки контроля.

Отличное предложение, которое помогло мне создать - как в спарклайнах - маркеры для «min», «max», «first» и "последний" точка данных в линейном графике. Существует одна строка точек данных, которые показаны на линейном графике, но без маркеров, и есть вторая строка точек данных, которые по формуле относятся к первым, последним, минимальным и максимальным значениям, но показывают ошибку # N / A код для всех других ячеек. Эти данные отображаются без линии, но с маркерами, так что обе линии накладываются друг на друга. Работает очень хорошо.

Похожие вопросы