Situation: Ich habe Daten, die ich durch Summierung von Zeilen basierend auf dem ersten Spaltenwert (Artikel-ID-Nummer) zu konsolidieren versuche. Wenn die ID-Nummern übereinstimmen, möchte ich, dass die Zeilen zusammengefügt und die doppelten Zeilen gelöscht werden.Falsche Zeilen in Konsolidierungsschleife gelöscht
Ich habe den folgenden Code geschrieben und ich habe 2 Probleme: 1. Das erste Mal, wenn ich den Code ausführen, gibt es immer ein paar Duplikate übrig, die nicht konsolidiert wurden. 2. Wenn ich den Code erneut ausführen, summiert und löscht Zeilen auch wenn sie keine Duplikate sind.
Jede Hilfe würde sehr geschätzt werden.
Sub ConsolidateRows()
Dim WB As Workbook
Dim WS As Worksheet
Dim iRow As Long
Dim iCol As Long
Dim LastRow As Long
Dim LastCol As Long
Dim duplicate As String
Dim dupRow As Long
Dim cell As Range
Dim i As Integer
'set
Set WB = Workbooks("Book1")
Set WS = WB.Sheets("Data")
LastRow = WS.UsedRange.Rows.Count
LastCol = WS.UsedRange.Columns.Count
'Loop to consolidate, delete the duplicate rows
iRow = 1
While WS.Cells(iRow, 1).Value <> ""
duplicate = Cells(iRow, 1).Value
iRow = iRow + 1
For Each cell In WS.Range("A1:A" & LastRow).Cells
dupRow = cell.Row
If cell.Value = duplicate And iRow <> dupRow Then
For iCol = 3 To LastCol
Cells(iRow, iCol) = Application.WorksheetFunction.Sum(Cells(iRow, iCol), Cells(dupRow, iCol))
Next iCol
WS.Rows(dupRow).Delete
End If
Next cell
Wend
End Sub
können Sie einfach eine Formel 'SUMMEF 'und die Funktion' RemoveDuplicates 'in die Excel-Multifunktionsleiste integriert verwenden. Oder schreiben Sie einfach den VBA, um dies zu tun, wenn Sie es wirklich automatisiert benötigen. –