Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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
Anzeige

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
Anzeige
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
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige