2016-05-23 102 views
0

我在添加系列以制作填充的雷达图表时遇到了问题。可能有更好的办法做到这一点,但建立所需的图表(没有 VBA),我创建一个表(120,12)在工作表中,添加一个“填充雷达”图表范围A1:L120 ,然后手动更新公式栏为这样:Excel VBA将系列添加到阵列的雷达图表

=SERIES("name1",,'Sheet1'!$A$1:$A$120,1) 
=SERIES("name2",,'Sheet1'!$B$1:$B$120,2) 
etc for 12 more series 

的想法是仅具有11点的值在每列作为非零,使得图表看起来像这样:

这里的第一个的不良例子我通常用来制作图表的范围为3列:

我希望能够在VBA中做到这一点,但不是采取值来自工作表中的范围,值将来自(120,12)数组。我读过几个有着类似意图的不同页面,但我还没有看到一个解决这个特定问题的页面。一个大问题是每个SERIES需要来自我的数组中的单个列,并且许多页面都表示无法从数组中拉出单个列来放入= SERIES函数。总的来说,我正在摔跤的大问题是用数组中的值填充图表。对此事的任何帮助都非常感谢。

谢谢!

+0

我不知道为什么没有得到补充我的图片,在这里,他们都是为了: http://i.stack.imgur.com/UpOZm.png 的http://我.stack.imgur.com/8H5Qu.png –

回答

0

This post partially answers the question

我设置了如下图所示的数据。

Data Picture

然后,下面的代码创建多个系列的图表。

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 
+0

我很欣赏这种回应,但不幸的是,这种解决方案需要使用一系列预先填充的单元格来制作图表。我希望直接从数组创建图表。 –

+0

如果将“s.Values = myData”替换为“s.Values = Array(1,2,3,4,5,6,7,8,9,10)”,该解决方案仍然有效。 – bwyn

+0

您是否能够确认该解决方案的工作原理? – bwyn