Zwei Tabellen vergleichen, Dublikate herausfiltern
19.11.2004 14:15:14
Sebastian
Ich habe folgendes Problem, zwei Tabellen je zwei Spalten. Aus diesen beiden Tabellen soll ich die Duplikate in eine dritte Tabelle abspeichern. Ich kopiere also beide Tabellen in Tabelle3 und sortiere die Inhalte und suche dann mit einem Sortierprogamm die Dubletten heraus, den Rest lösche ich. Soweit gut, im einzelnen funktionieren die Teile, im Zusammenspiel kommt beim Sortieren eine Fehlermeldung. Hier übersehe ich etwas und fehlt es mir eindeutig an Verständnis. Der Teil, welcher die Duplikate herausfiltert funktioniert ebenfalls.
Kann mir hier jemand einen Tipp geben...
*********************************************************************
Private Sub CommandButton1_Click()
Dim Target As Range
Dim wks As Worksheet
Dim rngA As Range, rngB As Range, wksA As Range
Dim iRow As Integer, iCounter As Integer, iCol As Integer
Application.ScreenUpdating = False
Set rngA = Worksheets("Tabelle1").Range("A1").CurrentRegion
Set rngB = Worksheets("Tabelle2").Range("A1").CurrentRegion
Set wks = Worksheets("Tabelle3")
Set wksA = Worksheets("Tabelle3").Range("A1").CurrentRegion
'SpalteA,B von Tabelle1 und Tabelle2 werden nach Tabelle3 kopiert
iCol = rngA.Columns.Count
If rngB.Columns.Count > iCol Then
iCol = rngB.Columns.Count
End If
For iCounter = 1 To iCol
wks.Cells(1, iCounter) = "Spalte" & iCounter
Next iCounter
wks.Rows(1).Font.Bold = True
rngA.Range("A1").CurrentRegion.Copy wks.Range("A2")
iRow = wks.Cells(Rows.Count, 1).End(xlUp).Row + 1
rngB.Range("A1").CurrentRegion.Copy wks.Cells(iRow, 1)
'Sprung auf Überschrift von Tabelle3
'Application.Goto Reference:="Extract"
'Sortieren von Tabelle 3
wksA.Range("A1").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:= _
xlGuess
'Datensatzduplikate herausfiltern
i = 2
While Cells(i, 1) <> ""
If Cells(i, 1) <> Cells(i + 1, 1) Then
Rows(i).Delete
ElseIf Cells(i, 2) <> Cells(i + 1, 2) Then
Rows(i).Delete
Else
While Cells(i, 1) = Cells(i + 1, 1) And Cells(i, 2) = Cells(i + 1, 2)
Rows(i + 1).Delete
Wend
i = i + 1
End If
Wend
wks.Columns.AutoFit
End Sub