Пользовательская полоса ошибок Excel 2010 VBA минус ошибка направления (создание коробчатой ​​диаграммы)

Я делаю коробчатую диаграмму из столбчатой ​​диаграммы с накоплением и использую минус и плюс бары погрешностей, чтобы сформировать усы для моей коробчатой ​​диаграммы. я упомянул об этом, чтобы создать коробочную диаграмму в Excel 2010

Код для создания полосы погрешности плюсового направления

.SeriesCollection(4).ErrorBar Direction:=xlY, Include:= _
        xlPlusValues, Type:=xlCustom, Amount:="=Sheet3!$B$12:$G$12"

работает, но полоса ошибок отрицательного направления:

.SeriesCollection(2).ErrorBar Direction:=xlY, Include:= _
        xlMinusValues, Type:=xlCustom, Amount:="=Sheet3!$B$9:$G$9"

бросает Runtime error '13': Type mismatch

Вот весь код:

Sub boxplot()
    Dim rng As Range
    Dim cht As Chart

    Set datasht = ThisWorkbook.Sheets(3)
    Set rng = getChtrng(8, 12, 2, 7) 'select cell ranges to populate chart

    datasht.Activate
    rng.Select
    Set cht = charts.Add
    Set cht = cht.Location(Where:=xlLocationAsObject, Name:="Sheet3")

    With cht
        .SetSourceData rng
        .ChartType = xlColumnStacked
        .SeriesCollection(1).XValues = "=Sheet3!$B$1:$G$1"
        .HasTitle = True
        .HasLegend = False
        .ChartTitle.Text = ThisWorkbook.Sheets(1).Cells(1, 6).Value

        'remove min, q1 and max quartile bars
        .SeriesCollection(1).Select
        Selection.Format.Fill.Visible = msoFalse
        .SeriesCollection(2).Select
        Selection.Format.Fill.Visible = msoFalse
        .SeriesCollection(5).Select
        Selection.Format.Fill.Visible = msoFalse

        'include top whisker
        .SeriesCollection(4).ErrorBar Direction:=xlY, Include:= _
            xlPlusValues, Type:=xlCustom, Amount:="=Sheet3!$B$12:$G$12"

        'include bottom whisker
        .SeriesCollection(2).ErrorBar Direction:=xlY, Include:= _
            xlMinusValues, Type:=xlCustom, Amount:="=Sheet3!$B$9:$G$9"

    End With
End Sub

Кроме того, есть ли альтернативы созданию boxplot в vba, которые точно работают?


person peejayjay    schedule 11.07.2017    source источник
comment
Я не использую диаграммы достаточно часто, чтобы быть уверенным, но есть ли причина, по которой в вашем вопросе говорится, что вы установили xlMinusValues для SeriesCollection(4), но ваш код показывает, что вы устанавливаете его для SeriesCollection(2)?   -  person YowE3K    schedule 11.07.2017
comment
извините, я просто экспериментировал со значениями   -  person peejayjay    schedule 11.07.2017


Ответы (1)


Синтаксис ErrorBar следующий: .ErrorBar(Направление, Включение, Тип, Сумма, МинусЗначения)

который Amount должен использоваться только для положительного количества ошибок, а MinusValues ​​должен использоваться только для отрицательного количества ошибок, когда Type имеет значение xlErrorBarTypeCustom.

Таким образом, вам нужно будет изменить свое выражение для MinusValues, чтобы оно было следующим:

.SeriesCollection(2).ErrorBar Direction:=xlY, Include:= _
        xlMinusValues, Type:=xlCustom, _
        Amount:="=Sheet3!$B$9:$G$9", MinusValues:="=Sheet3!$B$9:$G$9"
person AlbertLau14100    schedule 22.07.2018