ich habe einen funktionierenden VBA-Code, dessen Durchlaufzeit ich gerne beschleunigen würde. Dabei geht es mir um folgenden Ausschnitt, welcher der größte Zeitfresser ist, da die zu durchsuchende Excel-Datei bis zu 100.000 Zeilen haben kann...
Im Reiter "Analyse" befinden sich rund 1.000 Einträge, für die ich einen Wert aus wb1 benötige. Die Herausforderung ist, dass in "Analyse" der Suchparameter in der Spalte A steht (z.B. A03040.11.30.50.102). In wb1 muss ich diesen allerdings aus den Spalten A (z.B. A030) und D (z.B. 40.11.30.50.102) zusammensetzen. Das Ergebnis kommt dann aus Spalte P und wird in "Analyse" in Spalte r geschrieben.
Dim a As Integer 'Zeilennummer in Reiter Analyse
Dim r As Integer 'Spaltennummer in Reiter Analyse
a = 2
r = 10
Set wb1 = ActiveWorkbook 'Datei in der die Werte gesucht werden
Do Until IsEmpty(wb1.Sheets("Analyse").Cells(a, 1))
If IsError(Evaluate("=LOOKUP(2,1/(A:A&D:D=""" & wb1.Sheets("Analyse").Cells(a, 2) & wb1.Sheets("Analyse").Cells(a, 4) & """),P:P)")) Then
wb1.Sheets("Analyse").Cells(a, r) = 0 'Statt #NV schreibe 0
Else
wb1.Sheets("Analyse").Cells(a, r) = Evaluate("=LOOKUP(2,1/(A:A&D:D=""" & wb1.Sheets("Analyse").Cells(a, 2) & wb1.Sheets("Analyse").Cells(a, 4) & """),P:P)")
End If
a = a + 1
Loop
Hat jemand einen Tipp für mich, wie ich dieses Prozedere beschleunigen kann? Habe schon einiges zu Index Match und auch zum 4. Parameter des SVERWEIS gelesen, bekomme es aber in VBA nicht umgesetzt.Ich wäre euch sehr dankbar!!
VG
Oli__