是否有可能创建一个图表(如双Y轴折线图)不是从范围,但经过阵列数据? 如果是这样,怎么样?
Answer 1:
是。 您可以将阵列添加到XValues
和Values
一个属性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