Ich möchte einige Hilfe in Bezug auf das folgende Problem haben. Jedes Quartal haben wir Excel-Sheets an uns geschickt mit Client-Informationen mit Zeilen oft mehr als eine 1000. Ich habe es geschafft, einen Code zu schreiben, der doppelte Zeilen löscht, die eine 100% Übereinstimmung sind, jedoch bleibt ein beträchtlicher Teil aufgrund der folgende:VBA - Löschen doppelter Zeilen und Zusammenführen von Zellen mit eindeutigen Daten
Ein neuer Code, den ich irgendwie funktioniert gefunden haben, aber ich würde etwas Hilfe brauchen sie zwicken, wie es das folgende tut:
es das Duplikat löscht und führt die Zellen, Wenn jedoch ein Zellenwert (in diesem Fall Marketing) beide Male angezeigt wird, wird er zweimal gespeichert. Auch ist es nicht behalten andere Informationen wie E-Mail/Name/Telefon usw.
Hier ist der Code selbst:
Sub Main()
Dim Source As Worksheet: Set Source = ThisWorkbook.Worksheets("Sheet1")
Dim Destination As Worksheet: Set Destination = ThisWorkbook.Worksheets("Sheet2")
Dim Records As Object: Set Records = CreateObject("Scripting.Dictionary")
Dim Data As Variant
Dim Index As Long
Dim Row As Integer: Row = 1
Data = Source.Range("A1", "E" & Source.Rows(Source.UsedRange.Rows.Count).Row).Value2
For Index = LBound(Data, 1) To UBound(Data, 1)
If Records.Exists(Data(Index, 1)) Then
Destination.Cells(Records(Data(Index, 1)), 5).Value2 = Destination.Cells(Records(Data(Index, 1)), 5).Value2 & ", " & Data(Index, 5)
Else
Records.Add Data(Index, 1), Row
Destination.Cells(Row, 1).Value2 = Data(Index, 1)
Destination.Cells(Row, 5).Value2 = Data(Index, 5)
Row = Row + 1
End If
Next Index
Set Records = Nothing
End Sub
Ich habe mich gefragt, ob es einen Weg gibt, dieses Problem zu lösen, oder ist es zu kompliziert ? Wenn Letzteres, keine Probleme, nur das Löschen der Duplikate funktioniert gut und reduziert die Arbeitszeit sehr.
Vielen Dank für Ihre Eingabe und Kommentar!
Erstellen Sie eine Klasse, in der ein Mitglied 'Name' ist und alle anderen Informationen und das andere ein Dictionary of' Units' ist. Verwenden Sie die '.Exists' Methode, um die doppelten Einheiten auszusondern. –
@MaciejLos Was ist dein Standpunkt? –
@MaciejLos Es ist üblich in VBA. Wählen Sie in der VBE-Hauptmenüleiste "Einfügen" ► "Klassenmodul". Für weitere Informationen über Klassen in VBA verweise ich Sie auf Chip Pearson [Einführung in Klassen] (http://www.cpearson.com/Excel/Classes.aspx) –