В настоящее время мой код только отображает диаграмму для альтернативного столбца y «средних значений» в области от столбца A до E с такими же значениями x (представлены как рабочая неделя). Но теперь, если я хочу включить данные из другого региона, такие как весь альтернативный столбец y «идеальные средние значения», которые также имеют те же значения x, как показано на рисунке 1, на одну и ту же диаграмму, как мне включить эти данные для заговор в VBA?
рисунок 1
![enter image description here](https://i.stack.imgur.com/4sRjI.png)
В настоящее время
![enter image description here](https://i.stack.imgur.com/JXx5r.png)
Ожидаемый
![enter image description here](https://i.stack.imgur.com/1hhfL.png)
токовый выход ![enter image description here](https://i.stack.imgur.com/KsD1k.png)
Ожидаемый выход
![enter image description here](https://i.stack.imgur.com/6kpGV.png)
текущий код
Sub plotgraphs()
Call meangraph
End Sub
Private Sub meangraph()
Dim i As Long, c As Long
Dim shp As Shape
Dim Cht As chart, co As Shape
Dim rngDB As Range, rngX As Range, rngY As Range,yourOtherRange As Range, rngdb1 As Range
Dim Srs As Series
Dim ws As Worksheet
Set ws = Sheets("Data")
Set rngDB = ws.Range("A1").CurrentRegion
Set rngX = rngDB.Columns(1)
Set rngY = rngDB.Columns(2)
Do While Application.CountA(rngY) > 0
Set co = Worksheets("meangraphs").Shapes.AddChart
Set Cht = co.chart
With Cht
.ChartType = xlXYScatter
'remove any data which might have been
' picked up when adding the chart
Do While .SeriesCollection.Count > 0
.SeriesCollection(1).Delete
Loop
'add the data
With .SeriesCollection.NewSeries()
.XValues = rngX.Value
.Values = rngY.Value
End With
'formatting...
With Cht.Axes(xlValue)
.MinimumScale = 5
.MaximumScale = 20
.TickLabels.NumberFormat = "0.00E+00"
End With
Cht.Axes(xlCategory, xlPrimary).HasTitle = True
Cht.Axes(xlValue, xlPrimary).HasTitle = True
End With
Set rngY = rngY.Offset(0, 2) 'next y values
With Cht
.ChartType = xlXYScatter
'remove any data which might have been
' picked up when adding the chart
Do While .SeriesCollection.Count > 0
.SeriesCollection(1).Delete
Loop
'add the first series
With .SeriesCollection.NewSeries()
.XValues = rngX.Value
.Values = yourOtherRange.Value
End With
'second series
With .SeriesCollection.NewSeries()
.XValues = rngX.Value
.Values = yourOtherRange.Offset(0, 6).Value
End With
end with
Loop
end sub