从Array数据创建图表,而不是范围(Create Chart from Array data an

2019-06-24 09:13发布

是否有可能创建一个图表(如双Y轴折线图)不是从范围,但经过阵列数据? 如果是这样,怎么样?

Answer 1:

是。 您可以将阵列添加到XValuesValues一个属性Series在图表上对象。 例:

Dim c As Chart
Dim s As Series
Dim myData As Variant

Set c = ActiveChart ' Assumes a chart is currently active in Excel...
Set s = c.SeriesCollection(1)

myData = Array(9, 6, 7, 1) ' or whatever
s.Values = myData


Answer 2:

您可以指定数组在Excel 2007年起图表系列,但在以前的版本我相信这是每个​​系列的长度在255个字符的限制。 我已经习惯了解决此限制的方法显示在下面的随机游走例如:

Sub ChartArray()

Dim x(0 To 1000, 0 To 0) As Double
Dim y(0 To 1000, 0 To 0) As Double
x(0, 0) = 0
y(0, 0) = 0
For i = 1 To 1000
    x(i, 0) = i
    y(i, 0) = y(i - 1, 0) + WorksheetFunction.NormSInv(Rnd())
Next i

Charts.Add
ActiveChart.ChartType = xlXYScatterLinesNoMarkers
With ActiveChart.SeriesCollection
    If .Count = 0 Then .NewSeries
    If Val(Application.Version) >= 12 Then
        .Item(1).Values = y
        .Item(1).XValues = x
    Else
        .Item(1).Select
        Names.Add "_", x
        ExecuteExcel4Macro "series.x(!_)"
        Names.Add "_", y
        ExecuteExcel4Macro "series.y(,!_)"
        Names("_").Delete
    End If
End With
ActiveChart.ChartArea.Select

End Sub

另一种方法是将名称指定到阵列(类似于上面的解决方法),然后设置系列来引用分配的名称。 这只要你XLS格式保存在所有版本中工作正常,但似乎保存到新的XLSX / XLSM / XLSB格式时是一个长限制的8192个字符命名的数组。



文章来源: Create Chart from Array data and not range