我想编写一个脚本,将行与空白单元格合并到上一行。
第2行在最后一列中有一个空白单元格。因此,它与行1合并。列A和B保持不变,C被覆盖,并且D被连接。第2行被删除。
第2行和第3行在最后一列中有空白单元格。因此,它们与行1合并。列A和B保持不变,C被覆盖,并且D被连接。第2行和第3行被删除。
如何使用VBA实现这一目标?
编辑:这是我迄今取得的成就。
Sub Merge()
ActiveSheet.UsedRange.Activate
ActiveCell.Offset(0, 4).Select
Do While ActiveCell.Row <= ActiveSheet.UsedRange.Rows.Count
Do While (IsEmpty(ActiveCell.Offset(1, 0).Value) And Not IsEmpty(ActiveCell.Offset(1, -4)))
ActiveCell.Offset(0, -1).Value = ActiveCell.Offset(0, -1).Value + " " + ActiveCell.Offset(1, -1).Value
ActiveCell.Offset(0, -2).Value = ActiveCell.Offset(1, -2).Value
ActiveCell.Offset(1, 0).EntireRow.Delete shift:=xlShiftUp
Loop
ActiveCell.Offset(1, 0).Select
Loop
End Sub
答案 0 :(得分:1)
试试这段代码:
Sub Merge()
Dim rng As Range
Set ws = Worksheets("Sheet2") 'Change your sheet name
Set rng = ws.Range("A1").CurrentRegion
With ws
For i = rng.Rows.Count To 1 Step -1
If .Cells(i, 5) = "" Then
.Cells(i, 3).Offset(-1) = .Cells(i, 3)
.Cells(i, 4).Offset(-1) = .Cells(i, 4).Offset(-1) & " " & .Cells(i, 4)
.Rows(i).EntireRow.Delete
End If
Next
End With
End Sub