ich habe folgenden VBA code für den SVerweis geschrieben:
Option Explicit
Sub SVerweis()
Application.ScreenUpdating = False 'Bildschirmbewegungen des VBA-Codes werden ausgeblendet
Dim ws1Row As Long, ws2Row As Long, ws1Col As Long, ws2Col As Long
Dim maxrow As Long, maxcol As Long
Dim colval1 As String, colval2 As String
Dim Row As Long, Col As Long
Dim diffcnt As Long, report As Workbook, hdr As String
Dim MapColumn() As Long, b As Boolean
Dim reportWS As Worksheet
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim VergleichsTool2 As Workbook
Dim ColNew As Long
Dim ColTitel As String
Dim Zähler1 As Long
Dim VlookUp As String
Dim Counter As Long
Dim Counter2 As Long
Dim ColumnLetter As String
Dim ColumnLetter1 As String
Dim Col1 As Long
'Definition der Variablen ist abgeschlossen
Set VergleichsTool2 = ActiveWorkbook
Set ws1 = VergleichsTool2.Worksheets("Datei1")
Set ws2 = VergleichsTool2.Worksheets("Datei2")
'Die Berechnung der verwendeten Zeile und Spalten der Worksheets ist abgeschlossen
'Die Berechnung der maximalen Zeile und Spalte ist abgeschlossen
maxrow = WorksheetFunction.Max(ws1Row, ws2Row)
maxcol = WorksheetFunction.Max(ws1Col, ws2Col)
ws1Row = 1
ws2Row = 1
ws1Col = 1
ws2Col = 1
'VlookUp Datei1
Do While Not IsEmpty(ws1.Cells(1, ws1Col)) ' Loop zur Bestimmung der maximalen Spaltennutzung
ws1Col = ws1Col + 1
Loop
Do While Not IsEmpty(ws1.Cells(ws1Row, 1))
For Counter = 1 To ws1Col
Col1 = ws1Col + Counter
ColumnLetter = Col_Letter(Counter)
ColumnLetter1 = Col_Letter(1)
VlookUp = "=Vlookup(" & ColumnLetter1 & ws1Row & ", Datei2!A:CV, " & Counter & ", 0)"
ws1.Cells(ws1Row, Col1).Formula = VlookUp
Next
ws1Row = ws1Row + 1
Loop
'VlookUp Datei2
Do While Not IsEmpty(ws2.Cells(1, ws2Col)) ' Loop zur Bestimmung der maximalen Spaltennutzung
ws2Col = ws2Col + 1
Loop
Do While Not IsEmpty(ws2.Cells(ws2Row, 1))
For Counter2 = 1 To ws2Col
Col1 = ws2Col + Counter2
ColumnLetter = Col_Letter(Counter)
ColumnLetter1 = Col_Letter(1)
VlookUp = "=Vlookup(" & ColumnLetter1 & ws2Row & ", Datei1!A:CV, " & Counter2 & ", 0)"
ws2.Cells(ws2Row, Col1).Formula = VlookUp
Next
ws2Row = ws2Row + 1
Loop
Application.ScreenUpdating = True 'Die Ausblendung der Bildschirmbewegungen des VBA-Codes wird _
_
_
wieder aktiviert
End Sub
Jetzt habe ich aber leides das Problem, dass der Durchlauf des VBA-Codes bei 80.000 Zeilen und 15 Spalten über 1,5 Stunden dauert und würde gerne wissen, ob ihr Ideen/Ansätze habt, um die Performance zu optimieren.LG
Darius