2016-11-18 82 views
0

在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 
--------------------- 

回答

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 
0

我会使用数据透视表。使用这种方法在运行一些自定义的VBA,有人提供的优点是:

  • ,如果你从A,B和C更高版本的更新,您无需更改代码,
  • 每个产品排序,但保留在单独的单元格中,因此可以轻松访问,您可以在其他情况下重复使用此方法。

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

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

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

我已经包含了下面的屏幕截图,应该有所帮助。

excel example

+0

数据透视表成功实现了我的实时使用。 – user3166984

+0

很高兴帮助,如果它工作,那么请接受左边的答案:) – Jonathan