2016-11-18 31 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