我正在处理 Excel 文件。我希望有人可以向我展示一个可能对我有帮助的宏,因为我正处于时间紧迫的状态,而且我不知道如何手动解决这个问题。
该表包含网上商店交易数据。我需要找到一种根据某些条件组合行的方法。例如,如果交易编号相同,则这些值会合并而不是相加。
----->>>>>>
此 VBA 代码在源单元格中返回示例屏幕截图所示的结果。
将其放入工作表的代码模块中。
Sub MERGE_COL()
For i = 1 To Range("A1").End(xlDown).Row
If Range("A" & i).Offset(0, 1) = Range("A" & i).Offset(1, 1) And _
Range("A" & i) = Range("A" & i + 1) Then
Range("B" & i) = ""
End If
Next i
End Sub
在我看来,最好的方法是将值连接成一行,然后应用“删除重复项”:
结果如 E:G 所示。
如果您希望按要求获得结果:
Option Explicit
Sub Merge()
Dim i As Long, j As Long
[A1].CurrentRegion.Sort Key1:=[A:A], Key2:=[B:B], Header:=xlYes
Application.DisplayAlerts = False
i = 3: j = 2
While Not IsEmpty(Cells(i, 1))
If Cells(i, 1) <> Cells(j, 1) Or Cells(i, 2) <> Cells(j, 2) Then
Cells(j, 2).Resize(i - j, 1).Merge
Cells(j, 2).VerticalAlignment = xlCenter
j = i
End If
i = i + 1
Wend
Cells(j, 2).Resize(i - j, 1).Merge
Cells(j, 2).VerticalAlignment = xlCenter
Application.DisplayAlerts = True
End Sub