arrBereich = Worksheets("Splitting").Range("$A$2:$A$" & lngZeileMax).Value
Du bekommst hier ein Array - allerdings ein zweidimensionales Array.
Besser:
1 | arrBereich = Application.Transpose(Worksheets( "Splitting" ).Range( "$A$2:$A$" & lngZeileMax).Value
|
Weitere Anmerkungen, wenn Du erlaubst:
1 | Worksheets( "Abnahmen" ). Select
|
Das ist unnötig. Kannst rauslöschen.
1 2 | With Tabelle3
lngZeileMax = .Range( "A" & .Rows.Count). End (xlUp).Row
|
Da Tabelle3 der Codename für das Arbeitsblatt "Splitting" zu sein scheint, kannst Du das in dem With-Rahmen folglich auch zu Nutze machen:
1 2 3 4 | With Tabelle3
lngZeileMax = .Range( "A" & .Rows.Count). End (xlUp).Row
arrBereich = .Range( "$A$2:$A$" & lngZeileMax).Value
|
Aber auch das ist wieder doppelt gemoppelt und liesse sich noch verkürzen und übersichtlicher gestalten:
1 2 3 | With Tabelle3
.Range(.Cells(2, 1), .Cells(.Rows.Count, 1). End (xlUp)). Select
End With
|
Das .Select (oder auch .Activate) versucht man natürlich stets irgendiwe zu vermeiden. In unserem Fall können wir das sogar ganz gut wie folgt verwenden:
1 2 3 | With Tabelle3
arrBereich = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1). End (xlUp)).Value
End With
|
Bzw wie oben bereits angemerkt:
1 2 3 | With Tabelle3
arrBereich = Application.Transpose(.Range(.Cells(2, 1), .Cells(.Rows.Count, 1). End (xlUp)).Value)
End With
|
1 | Worksheets( "Abnahmen" ).Range( "$A$1:$R$1000" ).AutoFilter (...)
|
Da es hier so ausschaut, also ob in SpalteA alle Zeilen lückenlos untereinander UND in Zeile 1 alle SPalten lückenlos nebeneinander sind, genügt:
1 | Worksheets( "Abnahmen" ).Range( "A1" ).AutoFilter (...)
|
Ganz gut wäre jetzt noch, Worksheets("...") zu vermeiden, da dort eigentlich ActiveWorkbook.Worksheets("...") steht - sieht man halt nicht.
In manchen Fällen könnte das zu Problemen führen, weil ActiveWorkbook nicht das Workbook ist, auf welches Du Deinen Code ausführen möchtest.
Entweder das Workbook in einer ObjektVariablen referenzieren und voranstellen => ObjektVariable.Worksheets("...")
oder (falls der Code sich in derselben Mappe befindet ThisWorkbook voranstellen => ThisWorkbook.Worksheets("...")
|