Создать горизонтальную линию в диаграмме Excel с макросом - PullRequest
1 голос
/ 03 февраля 2012

На работе я создал макрос для форматирования и составления схемы данных, полученных при тестировании деталей, которые мы производим. Значения должны находиться в определенном диапазоне, поэтому я хотел бы добавить в диаграммы линии, обозначающие границы допуска.

Например, один параметр - это значение напряжения для определенного сигнала. В спецификации должно быть от .271 до .451, поэтому я хотел бы добавить линии к этим значениям на этом графике.

Другие диаграммы измеряют разные вещи и имеют разные значения, но основной принцип тот же.

Количество точек данных на сигнал не одинаково, но обычно довольно велико, около пары тысяч каждая.

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

Ответы [ 2 ]

1 голос
/ 03 февраля 2012

Новая серия для каждой линии - лучший подход.

 'add a line series with line but no markers
    Sub AddLineSeries(cht As ChartObject, sName As String, xvals, _
                       yvals, SeriesColor As Long)
        Dim s As Series
        Set s = cht.Chart.SeriesCollection.NewSeries
        With s
            .Name = sName
            .Values = yvals
            .XValues = xvals
            .MarkerBackgroundColor = xlNone
            .MarkerForegroundColor = SeriesColor
            .MarkerStyle = xlMarkerStyleNone
            With .Border
                .Weight = xlThin
                .Color = SeriesColor
            End With
        End With
    End Sub

Использование (добавление одной строки для каждого отсечения):

'cht is the chart object
'minX/maxX are x-axis values you want to plot the line for
'qcMin/Max are the y-axis values for your lower/upper cut-offs
'Array() just creates an array of values to pass to the chart for plotting, since
'   we're not using values from a worksheet for this series
AddLineSeries cht, "QC Min", Array(minX, maxX), Array(qcMin, qcMin), _
              RGB(255, 0, 0)
AddLineSeries cht, "QC Max", Array(maxX, maxX), Array(qcMax, qcMax), _
              RGB(255, 0, 0)
0 голосов
/ 04 февраля 2012

Предполагая, что вы используете XY Scatter Chart, просто создайте пару точек данных и добавьте их в качестве новой серии.Например, введите свои данные, как показано в A1: B6, а затем добавьте весь этот диапазон как серию.Вы получите две строки.Очевидно, что значения X и Y должны быть рассчитаны на основе ваших исходных данных.

enter image description here

...