Excel VBA 从数组添加系列到雷达图
Excel VBA Add Series to Radar Chart from Array
我在 VBA 添加系列以制作填充雷达图时遇到问题。可能有更好的方法来构建所需的图表(without VBA),我创建了一个 table 即 (120,12) in一个工作表,在 A1:L120 范围内添加一个 "filled radar" 图表,然后手动更新公式栏,如下所示:
=SERIES("name1",,'Sheet1'!$A:$A0,1)
=SERIES("name2",,'Sheet1'!$B:$B0,2)
etc for 12 more series
我们的想法是每列中只有 11 个值是非零值,制作的图表如下所示:
这是我通常用来制作图表的范围的前 3 列的一个错误示例:
我希望能够在 VBA 中执行此操作,但不是从工作表中的范围中获取值,而是这些值来自 (120,12) 数组。我已经阅读了几个具有相似意图的不同页面,但我还没有看到一个解决这个特定问题的页面。一个大问题是每个 SERIES 都需要来自我数组中的单个列,许多页面都说不可能从数组中提取单个列以放入 =SERIES 函数。
总的来说,我正在努力解决的大问题是用数组中的值填充图表。非常感谢在此问题上的任何帮助。
谢谢!
This post partially answers the question。
我设置的数据如下图所示。
然后,以下代码创建具有多个系列的图表。
Sub CreateChartFromArray()
Dim c As Chart
Dim s As Series
Dim myData As Variant
ActiveSheet.Shapes.AddChart.Select
Set c = ActiveChart
ActiveChart.ChartType = xlRadar
For i = 1 To 12
myData = Range(Cells(1, i), Cells(101, i)).Value
Set s = c.SeriesCollection.NewSeries()
s.Values = myData
Next
End Sub
我在 VBA 添加系列以制作填充雷达图时遇到问题。可能有更好的方法来构建所需的图表(without VBA),我创建了一个 table 即 (120,12) in一个工作表,在 A1:L120 范围内添加一个 "filled radar" 图表,然后手动更新公式栏,如下所示:
=SERIES("name1",,'Sheet1'!$A:$A0,1)
=SERIES("name2",,'Sheet1'!$B:$B0,2)
etc for 12 more series
我们的想法是每列中只有 11 个值是非零值,制作的图表如下所示:
这是我通常用来制作图表的范围的前 3 列的一个错误示例:
我希望能够在 VBA 中执行此操作,但不是从工作表中的范围中获取值,而是这些值来自 (120,12) 数组。我已经阅读了几个具有相似意图的不同页面,但我还没有看到一个解决这个特定问题的页面。一个大问题是每个 SERIES 都需要来自我数组中的单个列,许多页面都说不可能从数组中提取单个列以放入 =SERIES 函数。
总的来说,我正在努力解决的大问题是用数组中的值填充图表。非常感谢在此问题上的任何帮助。
谢谢!
This post partially answers the question。
我设置的数据如下图所示。
然后,以下代码创建具有多个系列的图表。
Sub CreateChartFromArray()
Dim c As Chart
Dim s As Series
Dim myData As Variant
ActiveSheet.Shapes.AddChart.Select
Set c = ActiveChart
ActiveChart.ChartType = xlRadar
For i = 1 To 12
myData = Range(Cells(1, i), Cells(101, i)).Value
Set s = c.SeriesCollection.NewSeries()
s.Values = myData
Next
End Sub