Ich versuche, die Erstellung eines dynamischen XY-Scatter-Diagramms mit VBA zu automatisieren. Meine Daten sind in Gruppen von 12 individuellen Daten pro Versuch und die Anzahl der Versuche variiert. Zuerst scannte ich die CSV-Datei, um den letzten Satz von Daten zu finden, und indem ich die erste Zeile des Tags entfernte, teilte ich sie durch 12, um die Anzahl der verfügbaren Sätze zu bestimmen und dann die Daten mit den entsprechenden Datenpunkten und grafisch darzustellen Serienname. Ich habe den größten Teil des Codes funktioniert, aber ich habe ein Problem mit der Syntax bei der Aufnahme von Daten für den Seriennamen. Der Serienname wird nur funktionieren, wenn ich eine Spalte anstelle eines Bereichs von Spaltendaten auswähle.Excel-VBA mit mehreren Spalteneingaben als XY-Scatter-Diagramm Serienname im dynamisch generierten Diagramm
Wie kann ich meinen Code so ändern, dass mehrere Spalten als mein Serienname eingegeben werden?
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