使用宏在Excel图表中创建水平线

时间:2012-02-03 18:15:46

标签: excel charts line

在工作中,我制作了一个宏来格式化和绘制测试我们制作的部件所产生的数据。值必须在一定范围内,因此我想在图表中添加线条,表示公差限制的位置。

例如,一个参数是特定信号的电压值。它必须在.271和.451之间才能符合规范,所以我想在该图表上的那些值上添加行。

其他图表正在测量不同的东西,并且会有不同的值,但基本原理是相同的。

每个信号的数据点数量不尽相同,但通常非常大,每个信号大约数千个。

我在互联网上发现了一些涉及绘图工具或在图表中添加新数据系列的不同选项,但我并不精通excel宏的那些方面。事实上,我认为我不能找到我第一次找到数据系列想法的页面。

2 个答案:

答案 0 :(得分:1)

每一行的新系列是最好的方法。

 '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)

答案 1 :(得分:0)

假设您使用的是XY散点图,只需创建几个数据点并将其添加为新系列。例如,输入您的数据,如A1:B6所示,然后将整个范围添加为一系列。你会得到两行。显然,应根据原始数据计算X和Y值。

enter image description here