问题描述
我不知道是否可以仅使用y轴值创建图表线,y轴值包含单元格A1 + B1 + C1 + D1。并创建一个循环以进行序列化直到最后一行。
我的意思是,如果有可能,我可以根据数据密度(最后一行)进行无穷大次数,以在数据的每一行中创建行。我需要使它!要进行大量工作,每个插入一个,我有3650行:(
我对带有x轴和y轴的图表有一个宏,但是,当x轴没有数据并且y轴有2个或更多单元格时,我真的不知道该怎么办。
Sub RefreshRange_series()
Dim LastRow As Long
Dim Rng1 As Range
Dim n As Long
Dim c As Range
With Sheets("DATA GRAPH")
LastRow = .Range("B" & .Rows.Count).End(xlUp).Row
Set Rng1 = .Range("AD3:AD" & LastRow & ",AG3:AG" & LastRow)
End With
For Each c In Rng1.Cells
'is the row visible? skip if not
If Not c.EntireRow.Hidden Then
n = n + 1
With ActiveChart
.SetSourceData Source:=Rng1
End With
End If
Next c
End Sub
解决方法
尝试
Sub RefreshRange_series()
Dim LastRow As Long
Dim rngDB As Range,rng As Range
Dim n As Long
Dim c As Range
Dim objChart As ChartObject
Dim Cht As Chart
Dim Ws As Worksheet
Dim Srs As Series
Set Ws = Sheets("DATA GRAPH")
With Ws
LastRow = .Range("B" & .Rows.Count).End(xlUp).Row
'Set Rng1 = .Range("AD3:AD" & LastRow & ",AG3:AG" & LastRow)
Set rngDB = .Range("AD3:AD" & LastRow)
Set objChart = .ChartObjects(1)
Set Cht = objChart.Chart
With Cht
.ChartType = xlXYScatter '<~~ has Makers
'.ChartType = xlXYScatterLinesNoMarkers '<~~ Line
'Delete all previous series.
For Each Srs In .SeriesCollection
Srs.Delete
Next Srs
For Each rng In rngDB
Set Srs = .SeriesCollection.NewSeries 'add new series
With Srs
.XValues = Array(1,2,3,4) ' x values
.Values = rng.Resize(1,4) 'y values
' .MarkerStyle = xlMarkerStyleCircle '<~~set marker style and size,color
' .MarkerSize = 10
' .MarkerBackgroundColor = vbBlue
' .MarkerForegroundColor = vbRed
End With
Next rng
End With
End With
End Sub