Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1336to1340
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

Optimierungsfrage

Optimierungsfrage
12.11.2013 11:49:19
Thomas
Moin,
eine generelle Frage hätte ich.
Wenn man eine Spalte (A) auf Arbeitsblatt 1 hat und eine Spalte (B) auf Arbeitsblatt 2 hat, macht es denn für einen 'normalen' Abgleich (jeder Fall von Blatt B gegen jeden Fall von Blatt A) Sinn folgendes zu machen:
Der Abgleich soll in einer normalen Schleifenkombination erfolgen.
1 - A und Sheet(2):B
2 - Spalte B auf Sheet(1) kopieren und dann den Abgleich direkt auf dem selben Arbeitsblatt machen
3 - eine oder gar beide Spalten in ein Array kopieren und den Abgleich im Array machen
Ist sowas von der Laufzeit signifikant unterschiedlich schnell?
Und wenn ja, gibt es irgendwo Limits für Arrays? (irgendwo standen glaube ich mal Limits von Excel - aber hatte ich das im Internet gefunden oder war das hier im Forum irgendwo? )
Für mein aktuelles Problem habe ich ja von Rudi (Danke!) einen Vorschlag, aber generell würde mich interessieren ob Zugriffe auf einem Arbeitsblatt oder gar in einem Array signifikant schneller sind...
Tommi

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Optimierungsfrage
12.11.2013 11:57:20
Rudi
Hallo,
der Zugriff auf ein Array ist erheblich schneller. Vor allem bei großen Datenmengen.
Teste mal:
Sub aaa()
Dim a, x, t
t = Timer
For a = 1 To 500000
x = Cells(a, 1)
Next
Debug.Print Timer - t
End Sub

Sub bbb()
Dim a, b, x, t
t = Timer
b = Range("A1:A500000")
For a = 1 To 500000
x = b(a, 1)
Next
Debug.Print Timer - t
End Sub

Gruß
Rudi

AW: Optimierungsfrage
12.11.2013 12:11:24
Thomas
Hallo Rudi,
oh - das ist etwa Faktor 18-20 (bei deinem Beispiel)
Okay, dann weiss ich ja, das ich in Zukunft zeitkritische Sachen anders anpacke ;)
Wobei es eh sinnvoller ist, wenn man den Abgleich auf einer Kopie macht, da kann man dann ja auch noch (ebenfalls schneller) Leerzeichen und Sonderzeichen entsorgen usw.
Und ein Array scheint nur durch den Speicherplatz begrenzt zu sein, was auch immer das konkret heisst ;)
Tommi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige