Я пытаюсь автоматизировать создание динамической диаграммы XYscatter с помощью VBA. Мои данные представлены наборами из 12 отдельных данных на испытание, и количество испытаний может варьироваться. Во-первых, отсканировав CSV-файл, чтобы найти последний набор данных, и удалив первую строку тега, я разделил его на 12, чтобы определить количество доступных наборов, а затем заполнил данные на графике соответствующими точками данных и название серии. У меня работает большая часть кода, но у меня возникла проблема с синтаксисом при включении данных диапазона для имени серии. Название серии будет работать, только если я выбираю столбец вместо диапазона данных столбца.
Как я могу изменить свой код, чтобы иметь несколько входных столбцов в качестве имени моей серии?
Sub PlotSelect()
Dim myChart As Chart
DataRow = 1
SelectRow = 2
With ActiveSheet
'To count the number of rows to determine number of sets of data
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
Row = LastRow - 1
N = Row / 12
'Creating a dummy chart before repopulating the data points
Range("A1:B2").Select
Set myChart = ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmooth).Chart
' delete all the dummy series
For i = myChart.SeriesCollection.Count To 1 Step -1
myChart.SeriesCollection(i).Delete
Next
'Populating chart with data
Do While DataRow <= N
If DataRow <> -1 Then
myChart.SeriesCollection.NewSeries
myChart.SeriesCollection(DataRow).Name = Range(ActiveSheet.Cells(SelectRow, 2), ActiveSheet.Cells(SelectRow, 5))
myChart.SeriesCollection(DataRow).Values = Range(ActiveSheet.Cells(SelectRow, 9), ActiveSheet.Cells(SelectRow + 11, 9))
myChart.SeriesCollection(DataRow).XValues = Range(ActiveSheet.Cells(SelectRow, 8), ActiveSheet.Cells(SelectRow + 11, 8))
End If
DataRow = DataRow + 1
SelectRow = SelectRow + 12
Loop
End Sub