【发布时间】:2018-03-09 16:24:32
【问题描述】:
我找到了这段代码,但我无法让它在我的单元格范围内工作。我的例子如下。 “更正顺序”在 C 列,“数量”在 D 列。我想删除 C 列中的重复项,将 D 列中的相应值相加并粘贴到 F1:G40 范围内。如果我将 col C 复制并粘贴到 Col A,则下面的代码有效,否则它会删除重复项但值都是“0”??
A B C D
Corrected Order (LCP) Qty
Orange 12
Pear 9
Pear 9
Pear 6
Orange 6
Orange 3
Orange 1
Apple 34
Apple 4
Apple 4
Apple 67
Option Explicit
Sub main()
With Worksheets("Fruit Stock") '<== change "Fruit Stock" as per your actual sheet name
With .Range("C1:D40").Resize(.Cells(.Rows.Count, 3).End(xlUp).Row)
.Copy
With .Offset(, .Columns.Count + 1)
.PasteSpecial xlPasteValues ' copy value and formats
.Columns(2).Offset(1).Resize(.Rows.Count - 1, 1).FormulaR1C1 = "=SUMIF(C1,RC1,C[-" & .Columns.Count + 1 & "])"
.Value = .Value
.RemoveDuplicates 1, xlYes
End With
End With
End With
End Sub
【问题讨论】:
-
是否要删除重复的水果名称但添加所有水果的值。那么梨的一行显示总共 24 个?
-
数据透视表可以做到这一点。
-
不,我有不同的数据低于和跨越这个范围。我为此合并数据保留了 2 列。我知道我可以使用合并函数来执行此操作,但我想要一个快速命令按钮宏,因为我将定期执行此功能
-
对不起,只是回复第一个回复,是的,这就是我想要的梨 24 在移位列中
-
为什么不直接使用 if 语句使 SUMIF 方程(其中引用为空白或未找到)显示“”?