我试图在一列中查找重复值,并将第二列的值组合到一行中。我也想在第三栏中总结这些值。Excel VBA - 将具有重复值的行组合到一个单元格中,并合并其他单元格中的值
例如:
A B C D
h 4 w 3
h 4 u 5
h 4 g 7
h 4 f 4
k 9 t 6
k 9 o 6
k 9 p 9
k 9 j 1
将成为
A B C D
k 9 t;o;p;j 22
h 4 w;u;g;f 19
我一直在使用本作的第一部分的代码是
Sub mergeCategoryValues()
Dim lngRow As Long
With ActiveSheet
lngRow = .Cells(65536, 1).End(xlUp).Row
.Cells(1).CurrentRegion.Sort key1:=.Cells(1), Header:=xlYes
Do
If .Cells(lngRow, 9) = .Cells(lngRow + 1, 9) Then
.Cells(lngRow, 11) = .Cells(lngRow, 8) & "; " & .Cells(lngRow + 1, 8)
.Rows(lngRow +1).Delete
End If
lngRow = lngRow - 1
Loop Until lngRow < 2
End With
End Sub
(请原谅压痕)
我遇到的问题是它会找到第一对重复对象,但不是全部。所以我得到如下结果:
A B C D
k 9 t;o 12
k 9 p;j 10
h 4 w;u 8
h 4 g;f 11
想法?
预先感谢您。
你有没有考虑使用像'对于i = 65536〜1个步骤-1'用'细胞(I,1)'和比通过细胞循环'细胞(i -1,9)'而不是'do,循环直到'?不知道这是否会解决您的问题,直到我编写代码,但这通常适用于我。 – Takedasama
您提供的代码不会产生您所说的结果。例如,它不会在col D中添加值,输出在列K中。您是否有其他代码? –
@ Takedasama,你能详细说明一下吗?我是VBA新手,不确定你的意思。谢谢! – Texas2014