我試圖動態添加多個系列到折線圖。事前我不知道有多少系列,所以它需要動態。我提出的但不起作用的是:Excel VBA腳本動態添加系列到圖表
工作表ActiveSheet(或Sheets(「Data」))從C14開始具有行,直到包含從E14:Eend到R14的XValues和Columns的Cend: Rend其中「end」標記由列C確定的最後一行數據。系列名稱存儲在第9行。XValues對於所有系列都是相同的。
我的大問題是,我無法找到一種方法來將所有數據列作爲系列動態添加到我的圖表以及相應的名稱。我不是VBA的專家,所以請客氣。我已經閱讀了各種資料,並嘗試了很多腳本,似乎沒有任何工作。對象目錄有點幫助,但是我的問題依然存在。
Sub MakeChart()
Dim LastColumn As Long
Dim LastRow As Long
Dim i As Integer
Dim u As Integer
Dim NameRng As String
Dim CountsRng As Range
Dim xRng As Range
LastColumn = ActiveSheet.Cells(8, Columns.Count).End(xlToLeft).Column
ColumnCount = LastColumn - 4
LastRow = ActiveSheet.Range("C" & ActiveSheet.Rows.Count).End(xlUp).Row
' Debug.Print ("Last Column: " & LastColumn & " Count: " & ColumnCount & " LastRow: " & LastRow)
Charts.Add
With ActiveChart
.ChartType = xlLineMarkers
.HasTitle = True
.ChartTitle.Text = "Test"
End With
For i = 1 To ColumnCount
u = i + 4
NameRng = Sheets("Data").Range("R9:C" & u).Value
Set xRng = Sheets("Data").Range("R14:C3", "R" & LastRow & ":C3")
Set CountsRng = Sheets("Data").Range("R14:C" & u, "R" & LastRow & ":C" & u)
' Debug.Print ("CountsRng: R14:C" & u & ", R" & LastRow & ":C" & u & " NameRng: " & NameRng & " xRng: R14:C3 , R" & LastRow & ":C3")
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(i).XValues = xRng
ActiveChart.SeriesCollection(i).Values = CountsRng
ActiveChart.SeriesCollection(i).Name = NameRng
Next i
End Sub
至於它在哪裏工作,從哪一點起不起作用? –
該系列可能是從系列0開始的?因此SeriesCollection(i-1)? 如果我沒有弄錯,你也可以使用'With ActiveChart.SeriesCollection.NewSeries',並在下面的行中設置.XValues等。然後用'End With'關閉 –