У меня есть два столбца данных, один из которых содержит половину отрицательных чисел и половину положительных чисел. Я создал диаграмму (разброс с прямыми линиями и маркерами) для данных, используя код ниже:
Sub Test2()
Dim xData As Range
Dim yData As Range
Dim x2Data As Range
Dim y2Data As Range
Dim serName As Range
'set the ranges to get the data and y value label
Set xData = Application.Selection
Set yData = Application.Selection
Set x2Data = Application.Selection
Set y2Data = Application.Selection
Set serName = Range("AY2")
'define range
Set xData = Application.InputBox("xvalues", , xData.Address, Type:=8)
Set yData = Application.InputBox("yvalues", , yData.Address, Type:=8)
Set x2Data = Application.InputBox("x2values", , x2Data.Address, Type:=8)
Set y2Data = Application.InputBox("y2values", , y2Data.Address, Type:=8)
'get reference to ActiveSheet
Dim sht As Worksheet
Set sht = ActiveSheet
'create a new ChartObject at position (4100, 195) with width 400 and height 300
Dim chtObj As ChartObject
Set chtObj = sht.ChartObjects.Add(4100, 195, 400, 300)
'get reference to chart object
Dim cht As Chart
Set cht = chtObj.Chart
'create the new series
Dim ser As Series
Set ser = cht.SeriesCollection.NewSeries
ser.Values = yData
ser.XValues = xData
ser.Name = positivedcf
ser.ChartType = xlXYScatterLines
'create second series
Dim ser2 As Series
Set ser2 = cht.SeriesCollection.NewSeries
ser2.Values = y2Data
ser2.XValues = x2Data
ser2.Name = negativedcf
ser2.ChartType = xlXYScatterLines
End Sub
Как вы видите, я использовал 4 варианта, чтобы правильно построить график. Это вовлекало выбор раздела каждого столбца за один раз. Сейчас я хотел бы создать ту же диаграмму, но вместо 4-х вариантов я бы хотел использовать только 2. В идеале, эти 2 выбора будут просто выбирать оба столбца в полном объеме. Я хотел бы добиться этого, используя массивы тоже.
Может ли кто-нибудь помочь мне понять это? Если это поможет вам, я могу приложить изображение данных, которые я использовал для создания исходного графика. Заранее большое спасибо.
*** РЕДАКТИРОВАТЬ ****
Итак, я попробовал это ниже, заканчивая тем, что сделал график в 1 выделении, и это здорово. Однако на исходном графике были показаны как положительные, так и отрицательные части кривой разными цветами. По сути, я создал исходный граф, используя 2 ряда, которые встречаются при y = 0, давая эффект того, что все это одна кривая, тогда как в теории это две разные кривые. Если это имеет смысл?
Так есть ли способ сделать то же самое: по существу, создать график, используя 2 ряда, которые встречаются при y = 0, показывая положительные и отрицательные части кривой разными цветами, с 2 выбора (в идеале просто выделить оба столбца данных полностью) вместо исходных 4 выборов, которые я делаю?
Sub Test2()
Dim xData As Range
Dim yData As Range
Dim serName As Range
Dim TotalData As Range
'set the ranges to get the data and y value label
Set xData = Application.Selection
Set yData = Application.Selection
Set TotalData = Application.Selection
'define range
Set TotalData = Application.InputBox("AY3:AZ62", , TotalData.Address, Type:=8)
Set yData = TotalData.Resize(ColumnSize:=1)
Set xData = TotalData.Resize(ColumnSize:=1).Offset(ColumnOffset:=1)
'get reference to ActiveSheet
Dim sht As Worksheet
Set sht = ActiveSheet
'create a new ChartObject at position (4100, 195) with width 400 and height 300
Dim chtObj As ChartObject
Set chtObj = sht.ChartObjects.Add(4100, 195, 400, 300)
'get reference to chart object
Dim cht As Chart
Set cht = chtObj.Chart
'create the new series
Dim ser As Series
Set ser = cht.SeriesCollection.NewSeries
ser.Values = yData
ser.XValues = xData
ser.Name = positivedcf
ser.ChartType = xlXYScatterLines
End Sub