Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1844to1848
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Bereich aus anderer Tabelle in Array

VBA Bereich aus anderer Tabelle in Array
03.09.2021 16:00:31
W
Hallo Excel-Freunde.
Wie kann ich einen Bereich aus einem anderen Tabellenblatt in einen 2D-Array bringen?
So geht es jedenfalls nicht:
Groups = ActiveWorkbook.Sheets(ZBlatt).Range(Cells(3, 2), Cells(MaxRows, 3))
Wenn das entsprechende Blatt das aktive Blatt ist, dann gibt es kein Problem.
Wer kann helfen?
Gruß Werner

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Bereich aus anderer Tabelle in Array
03.09.2021 16:04:15
peterk
Hallo
Auch die Zellen müssen ein Bezug auf das Blatt haben

With ActiveWorkbook.Sheets(ZBlatt)
Groups = .Range(.Cells(3, 2), .Cells(MaxRows, 3))
end With

AW: VBA Bereich aus anderer Tabelle in Array
03.09.2021 16:35:46
W
Hallo peterk.
Danke für Deinen Vorschlag. Aber das Ergebnis ist ebenfalls ein Laufzeitfehler 1004.
Der Laufzeitfehler 1004 kommt auch, wenn das genannte Blatt das aktive Blatt ist. Dein Vorschlag muss also einen Fehler enthalten, Nur welchen?
Gruß Werner
AW: VBA Bereich aus anderer Tabelle in Array
03.09.2021 17:00:05
Daniel
HI
das "ActiveWorkbook.Sheets(ZBlatt)." muss auch vor den beiden CELLS stehen!
gundsätzlich gilt, dass alle Zellbezüge (Range, Cells, Columns, Rows), ohne die Tabellenblattangabe davor immer auf das aktive Blatt referenzieren*
der Fehler kommt, wenn die Range auf einem anderen Blatt liegen soll, als die Cells, die die Range definieren.
dh korrekt wäre:

Groups = ActiveWorkbook.Sheets(ZBlatt).Range(ActiveWorkbook.Sheets(ZBlatt).Cells(3, 2), ActiveWorkbook.Sheets(ZBlatt).Cells(MaxRows, 3))
da das umständlich ist, definert man den Zellbereich besser so, mit hilfe von Resize.

Groups = ActiveWorkbook.Sheets(ZBlatt).Cells(3, 2).Resize(MaxRows - 3 + 1, 2).Value
Gruß Daniel
* dies gilt für Code in einem allgemeinen Modul.
Befindet sich der Code in einem Tabellenblattmodul, so referenzieren Zellbezüge ohne Tabellenblattangabe davor auf das Tabellenblatt des Moduls.
Anzeige
AW: VBA Bereich aus anderer Tabelle in Array
03.09.2021 17:12:29
W
Hallo Daniel,
vielen Dank für Deinen Code mit Resize.
Mein Dank gilt allerdings auch peterk. Nicht er hat einen Fehler gemacht, sondern ich hatte den Code ncht richtig übernommen. In der Variablen MaxRows war der Wert 0 enthalten.
Kaum macht man es richtig, dann funktioniert es.
Also nochmals: beide Lösungen funktionieren. Vielen Dank.
Gruß Werner

328 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige