UPDATE:Если Loop и ряд Исключен
Ситуация: У меня есть данные, что я пытаюсь объединить суммированием строк на основе первого значения столбца (пункт идентификационный номер). Если совпадают идентификационные номера, я хочу, чтобы строки были добавлены вместе, а дублированные строки удалены.
Я написал следующий код, и я испытываю 2 проблемы: 1. Первый раз, когда я запустить код там всегда остается несколько дубликатов, которые не были консолидированы 2. Если я запускаю код снова подводит и удаляет строки, даже если они не дублируются.
Любая помощь будет высоко оценена.
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
Попробуйте пошаговый код и установите в 'Watch' на значении' cell.Value' в каждом конкретном случае с точкой останова на условии 'If'. – Dave