Thema Datum  Von Nutzer Rating
Antwort
Rot "for"loop effizienter darstellen
09.04.2019 22:23:59 All
NotSolved
10.04.2019 18:12:34 Gast58213
NotSolved

Ansicht des Beitrags:
Von:
All
Datum:
09.04.2019 22:23:59
Views:
50
Rating: Antwort:
  Ja
Thema:
"for"loop effizienter darstellen

Hallo zusammen,

die untere "for" schleife hat eine priorisierte suchfolge.erstens werden die werte in der spalte A tabelle 1 in der tabelle 2 spalte A gesucht. Das was passiert im unteren Code ist zum beispiel, dass der wert in A2 (in tabelle1) in tablle 2 im range A  zu suchen bis das Ende der Spalte A erreicht ist. Wenn der Wert A2 (tabelle1) in range A (tabelle 2) gefunden ist, wird eine kopie von dem wert gemacht. Wenn es nicht gefunden wird, springe man in die nächste Spalte "B2" ( aber noch in der selben reihe wir der Wert in A2) in tabelle 1 und sucht jetzt diesen neuen Wert in tabelle 2 unter ganz range B, bis dieser wert gefunden wird. Wenn nicht, springt man weiter in tablle 1 auf den Wert in C2( wir bleiben in der selben reihe, da der wert immernoch nicht gefunden wurde) um diesen Wert in Tabelle 2 in range ganz C zusuchen etc.

Das Problem ist, dass diese "for" schleife sehr lange dauern kann, da ich 2000 zeilen habe und die Frage ist, ob man ads noch effizienter lösen könnte mit?



Dim wb As Workbook, wq As Object
Dim ws, wi As Worksheet, datDatum
Dim w As Long, I As Long, t As Long
Dim DefaultMsgBox()
Dim r, i As Integer    



For r = 2 To 2000

Check = True:

For i = 1 To 90
    If ws.Range("A" & r).Value = wp.Sheets("ABC").Range("A" & i).Value Then
       wp.Sheets("ABC").Rows(i).Columns("E:AB").Copy
       ws.Range("G" & r).PasteSpecial
       GoTo NextR
    End If
Next i

For i = 1 To 90
     If ws.Range("B" & r).Value = wp.Sheets("ABC").Range("B" & i).Value Then
        wp.Sheets("ABC").Rows(i).Columns("E:AB").Copy
        ws.Range("G" & r).PasteSpecial
        GoTo NextR
     End If
Next i

For i = 1 To 90
     If ws.Range("C" & r).Value = wp.Sheets("ABC").Range("C" & i).Value And ws.Range("D" & r).Value = wp.Sheets("ABC").Range("D" & i).Value Then
        wp.Sheets("ABC").Rows(i).Columns("E:AB").Copy
        ws.Range("G" & r).PasteSpecial
        GoTo NextR
     End If
 Next i

NextR:
    If Not Check = ws.Range("A" & r).Value = wp.Sheets("ABC").Range("A" & i).Value Or Not Check = ws.Range("B" & r).Value = wp.Sheets("ABC").Range("A" & i).Value Or Not Check = ws.Range("C" & r).Value = wp.Sheets("ABC").Range("C" & i).Value And ws.Range("D" & r).Value = wp.Sheets("ABC").Range("D" & i).Value Then
    MsgBox "......"
    End If
Next r
End sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst genau und ausführlich
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
  • Bitte markieren Sie Ihre Anfrage als erledigt wenn Ihnen geholfen wurde
Thema: Name: Email:

 
 

Thema Datum  Von Nutzer Rating
Antwort
Rot "for"loop effizienter darstellen
09.04.2019 22:23:59 All
NotSolved
10.04.2019 18:12:34 Gast58213
NotSolved