【发布时间】:2015-01-29 13:23:34
【问题描述】:
我想知道如何使用 VBA 将四维数组的一维传递给 XY 散点图。
[我知道我可以通过费力地为所有内容输入单独的数组来做到这一点,但我希望让我的代码更紧凑。紧凑性对于填充数组特别有用,因为我已经完成了,所以我没有在下面包含它。我也知道如果我使用二维数组,那么我可以使用
Application.Index,但我的理解是这不适用于三维数组或四维数组 - 如果我错了,请让我知道。我在几个网站上查看了许多查询,我只能使用Application.Index找到有关 2D 数组的答案 - 如果有我错过的页面,请告诉我。]
我有一个已填充的数组变量:
Dim arrData() As Single
arrData(1 To 2, 1 To 4, 1 To 3, 1 To 56)
arrData 包含变量 1 到 56 的 Single 类型数据,在 2x4x3 布局内,因此有 1,344 个数据点。
我有一张图表:
Dim bIOpt As Byte
Dim bPOpt As Byte
For bIOpt = 1 To 4
For bPOpt = 1 To 4
Worksheets("Data").Activate
Range(Cells(1, 1), Cells(2, 2)).Select
Charts.Add
With ActiveChart
.Type = xlXYScatter
.ChartTitle.Delete
With .SeriesCollection(1)
.XValues = ?
.Values = ?
End With
.SeriesCollection.NewSeries
With .SeriesCollection(2)
.XValues = ?
.Values = ?
End With
.SeriesCollection.NewSeries
With .SeriesCollection(3)
.XValues = ?
.Values = ?
End With
End With
Next bPOpt
Next bIOpt
我希望每个SeriesCollection 包含来自arrData 的56 个点:XValues 将来自bPOpt 版本的arrData(2, bPOpt, n, ); (Y) Values 将来自arrData(1, bIOpt, n, ) 的bIOpt 版本。
我不知道如何写“.XValues = ?”和“.Values = ?”行以达到我的目的。
感谢您的帮助。
克里斯
【问题讨论】:
标签: arrays vba excel multidimensional-array