1

Я пытаюсь получить очки из диаграммы в Excel VBA?

Я составил таблицу оценок учеников в excel, и я хочу поставить условие, то есть, если отметки на диаграмме больше 90, то цвет точки меняется на красный, а если меньше 90, то цвет зеленый. Как я могу сделать это с помощью VBA?

2 ответа2

0

Вот быстрый пример, который должен дать вам все, что вам нужно:

Sub Macro1()
    Dim crt As Chart
    Dim ser As Series
    Dim val As Long
    Dim pnt As Point

    Set crt = ActiveChart

    Debug.Print "Number of Series: ", crt.SeriesCollection.Count

    Set ser = crt.SeriesCollection(2)

    Debug.Print "# Points in Series 2: ", ser.Points.Count
    NumPoints = ser.Points.Count

    Debug.Print "Values for Series 2:"
    For i = 1 To NumPoints
        val = ser.Values(i)
        Debug.Print " ", i, val,

        Set pnt = ser.Points(i)

        If val > 6 Then
            pnt.MarkerForegroundColorIndex = 4
            pnt.MarkerBackgroundColorIndex = 4
            Debug.Print pnt.MarkerForegroundColor, pnt.MarkerForegroundColorIndex
        Else
            Debug.Print
        End If
    Next i

End Sub

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

0

Вместо использования макроса сделайте две серии. Предположим, что оценки в B2:B10. Выберите C2:C10 с C2 активной ячейкой. Тип:

=IF(B2>=90,B2,NA())

затем удерживайте Ctrl и нажмите Enter, что введет формулу во все ячейки выбранного диапазона.

Выберите D2:D10 с D2 активной ячейкой. Тип

=IF(B2<90,B2,NA())

затем удерживайте Ctrl и нажмите Enter.

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

Создайте диаграмму со столбцами C и D, отформатируйте C с хорошим цветом и D с плохим цветом. Красный и зеленый не являются хорошим выбором из-за преобладания красно-зеленой дальтонизма. Попробуйте синий для хорошего и оранжевый для плохого.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .