将重复的行组合成单行

时间:2016-11-18 03:26:06

标签: excel-vba excel-2010 vba excel

在Excel中,我需要组合重复的行,如步骤1所示,并组合成单行,如步骤2所示。如何使用VBA完成?

请帮忙。

Step:1
=======
| a | b | cat
----------------
| a | b | dog
----------------
| c | d | tiger
----------------
| e | f | lion
----------------
| c | d | deer
----------------

Step:2
=======
| a | b | cat,dog
---------------------
| c | d | tiger,deer
---------------------
| e | f | lion
---------------------

2 个答案:

答案 0 :(得分:0)

这将做你想要的。

Sub Macro()
Dim lngRow As Long
For lngRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
If StrComp(Range("A" & lngRow), Range("A" & lngRow - 1), vbTextCompare) = 0 And StrComp(Range("B" & lngRow), Range("B" & lngRow - 1), vbTextCompare) = 0 Then
    If Range("C" & lngRow) <> "" Then
        Range("C" & lngRow - 1) = Range("C" & lngRow - 1) & "|" & Range("C" & lngRow)
    End If
Rows(lngRow).Delete
End If
Next
End Sub

答案 1 :(得分:0)

我会使用数据透视表。使用这种方法而不是运行某人提供的自定义VBA的优点是:

  • 如果您稍后从A,B和C更新,则无需更改代码
  • 每个项目都已排序,但保留在单独的单元格中,因此可以轻松访问,
  • 您可以在其他方案中重复使用此方法。

突出显示您的表格,然后点击插入|数据透视表。出现数据透视表时,将所有字段拖到“行”框中。

右键单击标签'a'并选择字段设置|布局&amp;单击“打印”,然后单击“以表格形式显示标签”。单击“确定”。

对标签'b'重复此操作。您还可以通过右键单击小计并取消选中“小计xxx”来删除小计。

我在下面列出了一个应该有帮助的截图。

excel example