Я пытаюсь создать диаграмму, которая отображает точки X и Y, но рисует линию между каждой точкой X для каждой серии.Вроде как это:
Однако моя проблема заключается в том, как я определяю свои Xvalues
и Values
в SeriesCollection
VBA.Это потому, что мои значения на самом деле хранятся в массивах.Я использовал массивы, потому что у меня есть данные:
ID Age1 Age2 Per
1 21 22 54.2%
2 19 23 68.6%
3 18 23 42.0%
4 30 33 45.1%
5 17 19 33.0%
6 19 22 41.3%
7 22 27 20.4%
8 19 20 56.4%
9 30 33 42.8%
10 21 22 59.7%
Поэтому мне нужно нанести на ось X значение в Age1
и Age2
.Соответствующее значение Y находится в столбце Per
.Но мне нужно создать новую серию для каждого ID.
У меня есть следующий код и помечены, где проблема.Обратите внимание, что это не компилируется.Я думаю, что проблема заключается в том, как мне пройти через значения, чтобы создать диаграмму XY.Я только хочу пройти через значения на графике.
Sub name()
Dim age1 As Variant
Dim age2 As Variant
Dim per1 As Variant
Dim per2 As Variant
Dim id As Variant
Dim ln As Integer
Dim cht As Chart
Dim wb As Workbook
Dim ws As Worksheet
Dim xdata As Varaint
Dim ydata As Varaint
Set wb = ThisWorkbook
Set ws = wb.Sheets(1)
id = ws.Range("A2", Range("A2").End(xlDown)).Value
age1 = ws.Range("B2", Range("B2").End(xlDown)).Value
age2 = ws.Range("C2", Range("C2").End(xlDown)).Value
per1 = ws.Range("D2", Range("D2").End(xlDown)).Value
per2 = ws.Range("D2", Range("D2").End(xlDown)).Value
ln = UBound(id) - LBound(id) + 1
Set cht = ws.ChartObjects("chart").Chart
With cht
.ChartArea.ClearContents
.ChartType = xlXYScatter
For i = 1 To ln
xdata=Array(age1(i),age2(i)) 'I assumed this would get the values in age1(i) and age2(i) and plot those as the xdata
ydata=Array(per1(i),per2(i)) 'Same error as above, but would use ydata
.SeriesCollection.NewSeries
.SeriesCollection(i).XValues = xdata
.SeriesCollection(i).Values = ydata
.SeriesCollection(i).Name = id(i)
Next i
End With
End Sub