使用仅在y轴上的数据创建图表线

问题描述

我不知道是否可以仅使用y轴值创建图表线,y轴值包含单元格A1 + B1 + C1 + D1。并创建一个循环以进行序列化直到最后一行。

i'm need create this chart in the image,when i create the line only insert the values in y-series and by default the horizontal axis labels put the numbers from 1 to 4

我的意思是,如果有可能,我可以根据数据密度(最后一行)进行无穷大次数,以在数据的每一行中创建行。我需要使它!要进行大量工作,每个插入一个我有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