Добрый вечер,
Следующий код:
Dim RunningNum As Long
Dim LastRow As Long
Dim MaskType As String
Dim CurWkSt As Worksheet
Set CurWkSt = Sheets("Output")
LastRow = Sheets("Imported").Range("A" & Rows.Count).End(xlUp).Row + 1
'For Loop to add all information,if duplicated Employee Number.
For RunningNum = 3 To LastRow
CurWkSt.Range("A" & RunningNum & ":AI" & RunningNum).Borders.LineStyle = xlContinuous
CurWkSt.Range("A" & RunningNum & ":AI" & RunningNum).HorizontalAlignment = xlLeft
'If Current Employee Number matches Previous Employee Number
If CurWkSt.Range("E" & RunningNum) = CurWkSt.Range("E" & RunningNum - 1) Then
'Highlight Employee ID Column to let you visually know.
CurWkSt.Cells(RunningNum, 5).Interior.ColorIndex = 3
'Find Which Mask it was previously and add to previous row!
If Not IsEmpty(CurWkSt.Range("J" & RunningNum)) Then
CurWkSt.Range("J" & RunningNum - 1).Value = CurWkSt.Range("J" & RunningNum).Value
CurWkSt.Range("J" & RunningNum - 1).Interior.Color = RGB(255, 102, 255)
CurWkSt.Range("T" & RunningNum - 1).Value = CurWkSt.Range("T" & RunningNum).Value
End If
If Not IsEmpty(CurWkSt.Range("K" & RunningNum)) Then
CurWkSt.Range("K" & RunningNum - 1).Value = CurWkSt.Range("K" & RunningNum).Value
CurWkSt.Range("K" & RunningNum - 1).Interior.Color = RGB(255, 204, 255)
CurWkSt.Range("U" & RunningNum - 1).Value = CurWkSt.Range("U" & RunningNum).Value
End If
If Not IsEmpty(CurWkSt.Range("L" & RunningNum)) Then
CurWkSt.Range("L" & RunningNum - 1).Value = CurWkSt.Range("L" & RunningNum).Value
CurWkSt.Range("L" & RunningNum - 1).Interior.Color = RGB(255, 204, 0)
CurWkSt.Range("V" & RunningNum - 1).Value = CurWkSt.Range("V" & RunningNum).Value
End If
If Not IsEmpty(CurWkSt.Range("M" & RunningNum)) Then
CurWkSt.Range("M" & RunningNum - 1).Value = CurWkSt.Range("M" & RunningNum).Value
CurWkSt.Range("M" & RunningNum - 1).Interior.Color = RGB(204, 236, 255)
CurWkSt.Range("W" & RunningNum - 1).Value = CurWkSt.Range("W" & RunningNum).Value
End If
If Not IsEmpty(CurWkSt.Range("N" & RunningNum)) Then
CurWkSt.Range("N" & RunningNum - 1).Value = CurWkSt.Range("N" & RunningNum).Value
CurWkSt.Range("N" & RunningNum - 1).Interior.Color = RGB(255, 230, 153)
CurWkSt.Range("X" & RunningNum - 1).Value = CurWkSt.Range("X" & RunningNum).Value
End If
If Not IsEmpty(CurWkSt.Range("O" & RunningNum)) Then
CurWkSt.Range("O" & RunningNum - 1).Value = CurWkSt.Range("O" & RunningNum).Value
CurWkSt.Range("O" & RunningNum - 1).Interior.Color = RGB(153, 255, 153)
CurWkSt.Range("Y" & RunningNum - 1).Value = CurWkSt.Range("Y" & RunningNum).Value
End If
If Not IsEmpty(CurWkSt.Range("P" & RunningNum)) Then
CurWkSt.Range("P" & RunningNum - 1).Value = CurWkSt.Range("P" & RunningNum).Value
CurWkSt.Range("P" & RunningNum - 1).Interior.Color = RGB(153, 204, 255)
CurWkSt.Range("Z" & RunningNum - 1).Value = CurWkSt.Range("Z" & RunningNum).Value
End If
'For now, we will hide the Duplicated Lines.
'CurWkSt.Rows(RunningNum).Hidden = True
'When in operation, we can delete these lines
CurWkSt.Rows(RunningNum).EntireRow.Delete
End If
Next
Call AddTotals
End Sub
Он работает в настоящее время, но проблема у меня сейчас, и я не уверен, почему!
Допустим, например, строки были
1| 12345 | other stuff
2| 12345 | other stuff
3| 12345 | other stuff
4| 12345 | other stuff
. Он только удаляет вторую строку и добавляет ее к первой, но не делает этого ни с какими другими строками. Пример:
1| 12345 | other stuff | Other stuff
3| 12345 | other stuff
4| 12345 | other stuff
, но без добавления всех остальных.
Есть предложения, как я могу это исправить? Моей первой мыслью было запускать сабвуфер несколько раз, но это глупо!