【问题标题】:Consolidate, merge and sum values in vba在 vba 中合并、合并和求和值
【发布时间】:2017-11-23 11:12:07
【问题描述】:

我有一个表,其中包含同一个人的重复项,我想将它们合并为一行,同时总结分配给每行数据的两列。

例如:

我想通过使用 A 列作为匹配内容的“参考点”来合并 A 到 D 列中的数据。然后我希望将这些值添加到 E 列和 F 列中。给我下面的结果。

我确信有一个简单的解决方案,但我对 VBA 很陌生,还没有遇到任何问题。

谢谢

【问题讨论】:

  • Pivot Table 来救援!
  • 我希望这可以作为流程的一部分自动完成,因此希望使用 VBA 来完成。
  • 所以记录自己构建数据透视表,您将拥有一个 vba 解决方案

标签: vba excel consolidation


【解决方案1】:

这可以使用以下代码来完成:

Sub foo()
LastRow = Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Row
For x = 2 To LastRow
    Sheet1.Cells(x, 7).Value = "=SUMIF(R1C1:R17C6,RC[-6],C[-2])"
    Sheet1.Cells(x, 8).Value = "=SUMIF(R1C1:R17C6,RC[-7],C[-2])"
Next x

Range("G2:H" & LastRow).Copy
Range("G2:H" & LastRow).PasteSpecial Paste:=xlPasteValues, operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("E2:F" & LastRow).Delete Shift:=xlToLeft
Sheet1.Range("$A$1:$H$" & LastRow).RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8), Header:=xlNo
End Sub

本质上,代码将 G 和 H 列中的所有值相加,然后复制并粘贴为值(以摆脱单元格上的公式),然后删除 E 和 F 列中的内容,向左移动以带来将新值添加到正确的列中,最后它会删除所有重复项,以便为您提供所需的编译列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 2018-07-31
    • 2016-06-14
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多