晚上好
以下代码:
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
但不将所有其他内容加在一起。
关于如何解决此问题的任何建议?我最初的想法是多次运行sub,但这很愚蠢!