我想對以下問題提供一些幫助。每個季度,我們都會向客戶發送包含行數超過1000的客戶信息的Excel表。我設法編寫了刪除100%匹配的重複行的代碼,但是,由於以下:VBA - 刪除重複的行和合並具有唯一數據的單元格
一個新的代碼,我發現還挺有效,但我需要一些幫助調整它,因爲它具有以下功能:
它刪除重複和合並單元格,然而,如果一個單元格值(在這種情況下是市場營銷)出現兩次,它將保留兩次。此外,不保留如郵件/姓名/電話等
這裏其他信息是代碼本身:
Sub Main()
Dim Source As Worksheet: Set Source = ThisWorkbook.Worksheets("Sheet1")
Dim Destination As Worksheet: Set Destination = ThisWorkbook.Worksheets("Sheet2")
Dim Records As Object: Set Records = CreateObject("Scripting.Dictionary")
Dim Data As Variant
Dim Index As Long
Dim Row As Integer: Row = 1
Data = Source.Range("A1", "E" & Source.Rows(Source.UsedRange.Rows.Count).Row).Value2
For Index = LBound(Data, 1) To UBound(Data, 1)
If Records.Exists(Data(Index, 1)) Then
Destination.Cells(Records(Data(Index, 1)), 5).Value2 = Destination.Cells(Records(Data(Index, 1)), 5).Value2 & ", " & Data(Index, 5)
Else
Records.Add Data(Index, 1), Row
Destination.Cells(Row, 1).Value2 = Data(Index, 1)
Destination.Cells(Row, 5).Value2 = Data(Index, 5)
Row = Row + 1
End If
Next Index
Set Records = Nothing
End Sub
我想知道如果有解決這個問題的方法,或者是太複雜?如果是後者,沒有問題,只有刪除重複的工作正常,並減少很多工作時間。
謝謝您的任何意見和建議!
創建一個類,其中一個成員是'Name'和所有其他信息,另一個是'Units'字典。使用'.Exists'方法清除重複的單位。 –
@MaciejLos您的觀點是什麼? –
@MaciejLos在VBA中很常見。從VBE主菜單欄選擇'Insert'►'Class Module'。有關VBA中的類的更多信息,請參閱Chip Pearson的[課程簡介](http://www.cpearson.com/Excel/Classes.aspx) –