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
|