繁体   English   中英

查找重复项,求和并响应,然后将总和发布到新列Excel VBA中

[英]Find duplicates, sum corresponsive and post the sums in a new column Excel VBA

我是新来的,但是我希望无论如何我尝试搜索问题都可以得到答案,但是找不到线程,所以很抱歉,如果已经有一个类似的线程。

我有几个文件,其中包含A至T列中的多个列表。我需要在列中查找重复项,并对不同列中的相应单元格求和,然后将结果添加到新列中。 我已经有一个代码可以满足我的需求,但不能完全满足我的需求。 问题在于此代码将结果与重复项的第一个(名称)写入同一行。 因此,如果我的列表是这样,它将写入如下所示的结果:

A B C
a 5 10
a 2 
a 3
b 2 6
b 3
b 1
c 4 7
c 1
c 2

我希望它在结果行1,2和3中写入结果,而不是在“正确”行之前显示空白。 我还想在结果旁边保留类型的名称。 像这样:

Name Results
a 10
b 6
c 7

`

Sub sample()

Dim lastRow As Integer, num As Integer, i As Integer
lastRow = Range("C65000").End(xlUp).Row


For i = 14 To lastRow
num = WorksheetFunction.Match(Cells(i, 3), Range("C1:C" & lastRow), 0)
If i = num Then
Cells(i, 25) = WorksheetFunction.SumIf(Range("C1:C" & lastRow), Cells(i, 3), Range("J1:J" & lastRow))
Cells(i, 25).Interior.Color = vbGreen
Else
Cells(i, 3).Interior.Color = vbYellow
End If
Next i

End Sub

`

我已经尝试了一下代码,但我只是不知道如何制作它,所以我得到了我所需要的..:/

谢谢你的帮助

我的代码有另一个问题,如果有一个空白行(很多情况发生),则该代码仅适用于这些行,直到该空白消失然后退出并告诉我有问题。

试试这个,为我工作。

Application.ScreenUpdating = False
Range("c:c").Clear
For i = 1 To Sheet1.UsedRange.Rows.Count
    alreadythere = False
    For k = 1 To i
        If Cells(k, 1) = Cells(i, 1) Then
            alreadythere = True
            Exit For
        End If
    Next k
    If alreadythere = False Then
        Cells(i, 3) = Cells(i, 2)
      Else
        Cells(k, 3) = Cells(k, 3) + Cells(i, 2)
    End If
Next i
Application.ScreenUpdating = True

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM