2016-05-23 99 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