I am trying to plot multiple series on the same plot using the setsourcedata method. The tricky part is that with this spreadsheet, the number of series is variable. In other words, one day there might be two series that I need to plot, and the next day there might be five, so the exact locations of the series at which data must be pulled from changes depending on the number of series that must be plotted. Right now I am using the integer h to iterate the series, however it only plots the last series in the group. Can this be done with the setsourcedata method? Is there another way to accomplish what I am trying to do? Here is my code so far:

Sub AddChart()

Dim chrt As Chart
Dim h As Integer
Dim o As Integer
Dim rng_o As Range

h = 0
o = Sheets("Enter Data").Range("A3")

If Sheets("Plot").ChartObjects.Count > 0 Then
    Sheets("Plot").ChartObjects.Delete
End If

'Adds chart and defines position
Set chrt = Sheets("Plot").Shapes.AddChart(xlXYScatterLines, Cells(4, 8).Left, Cells(4, 8).Top).Chart

With chrt
    
    'Source Data
    For Each rng_o In Range(Cells(1, 3), Cells(o, 3))
        .SetSourceData Source:=Range(Cells(5, 2 * h + 1), Cells(5, 2 * h + 2).End(xlDown)), PlotBy:=xlColumns
        h = h + 1
    Next
    
    'Legend
    .HasLegend = False
    
    'Chart Title
    .HasTitle = True
    .ChartTitle.Text = Cells(2, 1)
    
    'X Axis
    If Not Cells(2, 3) = 0 Then
        .Axes(xlCategory, xlPrimary).HasTitle = True
        .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = Cells(2, 3)
    End If
    
    'Y Axis
    If Not Cells(2, 4) = 0 Then
        .Axes(xlValue, xlPrimary).HasTitle = True
        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = Cells(2, 4)
    End If
End With
    
End Sub