Array mit Variantobjekten zu Range kombinieren
Lax
Hallo,
ich mache gerade meine ersten Schritte mit VBA und bin gerade dabei die Grundlagen mit diversen privaten Projekten zu lernen. Quasi learning by doing.
Habe ein Stück Code zusammengebastelt mit dem ich eine txt Datei in excel einlese und anschließend in ein Format bringe mit dem ich weiter arbeiten kann.
Nun möchte ich über Checkboxes die Datenreihen auswählen die ich später in einem Diagramm anzeigen möchte. Dazu habe ich die Ranges der einzelnen Datenreihen in einem Array definiert und wollte anschließend mit einer Schleife und der Union Funktion die Range für jede angewähle Checkbox zu einem einzigen Rangeobjekt verbinden, dass ich dann als Range für ein Diagramm verwenden möchte. Allerdings klappt das nicht so recht und ich bekomme immer wieder den Fehler "Objekt erforderlich" angezeigt, obwohl ich glaube alle objekte korrekt definiert zu haben.
So sieht mein Code bisher aus. Um zu testen ob das ganze funktioniert wollte ich zuletzt die ausgewählte Range einfärben
Private Sub CB_Plot_Click()
Dim Checkboxen() As Boolean
Dim rangeCB() As Variant
Dim combinedRange As Range
Dim i, LastRow As Integer
'Array mit den Zellbereichen
LastRow = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Set combinedRange = Range(Cells(27, 1), Cells(LastRow, 1)) 'Diese Range ist unabhängig von der Auswahl immer Teil der gesammten Range
ReDim rangeCB(1 To 4)
rangeCB(1) = Range(Cells(27, 5), Cells(LastRow, 5))
rangeCB(2) = Range(Cells(27, 9), Cells(LastRow, 9))
rangeCB(3) = Range(Cells(27, 16), Cells(LastRow, 16))
rangeCB(4) = Range(Cells(27, 18), Cells(LastRow, 18))
'Auswahl wird als Array gespeichert
ReDim Checkboxen(1 To 4)
For i = 1 To 4
Checkboxen(i) = Me.Controls("CheckBox" & i).Value
Next i
'Die Range der ausgewählten Parameter soll hier zu einer Range kombiniert werden
For i = 1 To 4
If Checkboxen(i) = True Then
Set combinedRange = Application.Union(combinedRange, rangeCB(i))
End If
Next i
combinedRange.Interior.Color = RGB(255, 0, 0)
End Sub
Vielen Dank für euere Hilfe.