Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Laufzeitoptimierung einer "For"-Schleife

Forumthread: Laufzeitoptimierung einer "For"-Schleife

Laufzeitoptimierung einer "For"-Schleife
18.08.2005 15:54:36
Tobias
Hallo zusammen,
ich habe zwei große Tabellen mit mehreren tausend Einträgen. Tabelle1 enthält Artikelnummern, Tabelle2 enthält Artikelnummern und dazugehörige Preise.
Mit einem Makro will ich die Preise für die Artikelnummern in Tabelle1 übernehmen.
Wenn ich mit Hilfe von zwei verschachtelten For-next-schleifen alle Einträge von Tabelle1 mit allen Einträgen von Tabelle2 vergleiche dauert das viel zu lange.
Habt Ihr eine Idee für eine schnellere Variante?
Danke im voraus,
Tobias
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitoptimierung einer "For"-Schleife
18.08.2005 15:56:08
Unbekannter
Zeig mal dein Makro.
Gruß UN1
AW: Laufzeitoptimierung einer "For"-Schleife
18.08.2005 16:04:11
Tobias
Hier ist der Code.
For A = 1 To 9999
For B = 1 To 9999
Worksheets(1).Cells(A, 1).Value = Worksheets(2).Cells(B, 1).Value Then

Worksheets(2).Cells(B, 2).Select
Selection.Copy
Workheets(1).Cells(A, 2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Exit For
End If
Next B
Next A
Anzeige
AW: Laufzeitoptimierung einer "For"-Schleife
18.08.2005 16:15:38
Unbekannter
Probier mal das.
For A = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For B = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Worksheets(1).Cells(A, 1).Value = Worksheets(2).Cells(B, 1).Value Then
Worksheets(2).Cells(B, 2).Copy
Workheets(1).Cells(A, 2).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Exit For
End If
Next B
Next A
Gruß UN1
Anzeige
AW: Laufzeitoptimierung einer "For"-Schleife
18.08.2005 16:33:07
Tobias
Danke UN1!
In jeder Tabelle stehen etwa 8500 bis 9000 Zeilen. Somit reduziert sich die Laufzeit nur ein wenig.
Gibt es vielleicht einen anderen Schleifentyp, von dem bekannt ist, daß er schneller läuft?
Ansonsten muß ich wohl die lange Laufzeit in Kauf nehmen.
Gruß,
Tobias
AW: Laufzeitoptimierung einer "For"-Schleife
18.08.2005 16:34:58
Unbekannter
Das Problem ist die doppel Schleife die dauer sehr lange.Erkläre mir noch mal genau was das Makro machen soll vielleicht finden wir ne bessere Lösung.
Anzeige
AW: Laufzeitoptimierung einer "For"-Schleife
18.08.2005 16:42:38
Tobias
Die Problemstellung ist folgendermaßen:
Es gibt zwei große Tabellen: Tabelle1 enthält Artikelnummern, Tabelle2 enthält Artikelnummern und dazugehörige Preise.
Für alle Artikelnummer aus Tabelle1 sollen die Preise aus Tabelle2 geholt werden.
Gruß,
Tobias
AW: Laufzeitoptimierung einer "For"-Schleife
18.08.2005 16:35:07
Nepumuk
Hi Tobias,
so sollte es in akzeptabler Zeit fertig sein:
Public Sub test()
    Dim lngRow1 As Long, lngRow2 As Long
    Dim varArray1 As Variant, varArray2 As Variant
    With Worksheets(1)
        varArray1 = .Range(.Cells(1, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 2))
    End With
    With Worksheets(2)
        varArray2 = .Range(.Cells(1, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 2))
    End With
    For lngRow1 = 1 To UBound(varArray1)
        For lngRow2 = 1 To UBound(varArray2)
            If varArray1(lngRow1, 1) = varArray2(lngRow2, 1) Then
                varArray1(lngRow1, 2) = varArray2(lngRow2, 2)
                Exit For
            End If
        Next
    Next
    With Worksheets(1)
        .Range(.Cells(1, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 2)) = varArray1
    End With
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Laufzeitoptimierung einer "For"-Schleife
18.08.2005 16:47:39
Tobias
danke Nepumuk!
Könntest Du mir ganz kurz erklären wie das Makro funktioniert? Enthalten die Arrays den Inhalt von den 2 Tabellenblättern? Warum ist das Makro schneller?
Ich bin gerade dabei, den Code anzupassen.
Gruß,
Tobias
AW: Laufzeitoptimierung einer "For"-Schleife
18.08.2005 16:51:15
Nepumuk
Hi Tobias,
das Makro macht nichts anderes wie deines, nur in Arrays. Operationen darin sind gut 100 mal schneller wie die in Tabellen.
Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Laufzeitoptimierung einer "For"-Schleife
18.08.2005 17:27:09
Tobias
Vielen Dank! Läuft tatsächlich viel schneller!
Gruß,
Tobias
;

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

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