我有數據的電子表格,看起來是這樣的:問題與行結合宏觀刪除數據
V1 Wht
V1 blck
V1 Red
V2 Wht
V2 Grn
V3 prpl
,我需要它來簡化到
V1 wht, blck, red
V2 Wht, grn
V3 prpl
我發現了一個宏觀網上說將這樣做
Sub CombineRows()
'Update 20131202
Dim WorkRng As Range
Dim Dic As Variant
Dim arr As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Set Dic = CreateObject("Scripting.Dictionary")
arr = WorkRng.Value
For i = 1 To UBound(arr, 1)
xvalue = arr(i, 1)
If Dic.Exists(xvalue) Then
Dic(arr(i, 1)) = Dic(arr(i, 1)) & ", " & arr(i, 2)
Else
Dic(arr(i, 1)) = arr(i, 2)
End If
Next
Application.ScreenUpdating = False
WorkRng.ClearContents
WorkRng.Range("A1").Resize(Dic.Count, 1) = Application.WorksheetFunction.Transpose(Dic.keys)
WorkRng.Range("B1").Resize(Dic.Count, 1) = Application.WorksheetFunction.Transpose(Dic.items)
Application.ScreenUpdating = True
End Sub
但它只適用於約40個值或更小的小塊。任何更多的東西和子將粘貼在左列的鍵的值,但是,項目應該在的右列將是空白的。
有什麼辦法可以修改這段代碼,以便能夠安全地處理更多的數據?
謝謝!
使用字典.... – cyboashu
@cyboashu,不要告訴我你沒看代碼部分。 ;) – ManishChristian
'它銷燬右欄中的數據'請解釋。 – ManishChristian