VBA, Datenfeld aus mehereren Tabellenblättern
08.01.2007 21:06:12
Peter
gestern habe ich Euer Forum intensivst durchforstet, aber nichts passendes gefunden.
Problem: Ich möchte alle Tabellenblätter meiner Exceldatei in ein Datenfeld einlesen. Bisher habe ich das folgendermaßen gemacht (Auszug):
ZeileAnz=5000
For BlattZähler = 0 To BlattAnz
With Worksheets("BlattZähler")
' Bereich je Blatt festlegen
SpalteAnz = .Cells(1, Columns.Count).End(xlToLeft).Column
Bereich = .Range(.Cells(1, 1), .Cells(ZeileAnz, SpalteAnz))
For ZeileZähler = 1 To ZeileAnz
For SpalteZähler = 1 To SpalteAnz
' Werte einlesen
ARRAY(ZeileZähler, SpalteZähler + SpalteGesamt) = _
Bereich(ZeileZähler , SpalteZähler)
Next SpalteZähler
Next ZeileZähler
End With
SpalteGesamt = SpalteGesamt + SpalteAnz - 1
Next BlattZähler
Das ganze dauer allerdings bei ca. 20 Blättern mit den beiden geschachtelten Schleifen eine ganze Zeit (ca. 20 sekunden).
Frage: Wie geht das ganze schneller?
Mit dem Union-Befehl die Bereiche zusammenfügen und den gesamten Bereich einem Datenfeld zuweisen klappt nicht, da sich der Union-Befehl wohl nur auf ein Tabellenblatt beziehen darf...
Aber das muss doch irgendwie schneller machbar sein...
Bin für jede Hilfe dankbar
Peter