Excel VBA SUMIF然后删除重复行

Excel VBA SUMIF然后删除重复行,excel,vba,Excel,Vba,我正在尝试创建一个宏(我知道轴也可以完成它;但是,我需要一个宏)。我需要一个宏来计算D列中的值是否与a列中的条件匹配。然后我想删除所有其他值,只保留Sumif值 比如说 Col A ColD AB 10 CD 5 FG 25 HI 100 AB 50 FG 0 OP 500 HI 80 OP 66 任何帮助都将不胜感激。谢谢您的sumif公式从错误列求和: 您的RC符号相当于: =I

我正在尝试创建一个宏(我知道轴也可以完成它;但是,我需要一个宏)。我需要一个宏来计算D列中的值是否与a列中的条件匹配。然后我想删除所有其他值,只保留Sumif值

比如说

Col A ColD AB 10 CD 5 FG 25 HI 100 AB 50 FG 0 OP 500 HI 80 OP 66
任何帮助都将不胜感激。谢谢

您的sumif公式从错误列求和: 您的RC符号相当于:

=IF(COUNTIF(A$1:A1,A1)>1,”,SUMIF(A$1:A10,A1,D$1:D10))

但是你想要:
=IF(COUNTIF(A$1:A1,A1)>1,”,SUMIF(A$1:A10,A1,b$1:b10))

用以下方法更正它:


.FormulaR1C1=“=IF(COUNTIF(R1C[-4]:RC[-4],RC[-4])>1“”,SUMIF(R1C[-4]:R[“&LastRow&]C[-4]、RC[-4]、R1C[-3]:R[“&LastRow&]C[-3])”

顺便说一下,这很容易调试。我将光标放在.value=.value行上,然后点击F9强制在那里暂停。我点击f5运行到那个点,然后检查了临时求和列中的公式。同样,在我将工作表设置为activesheet之后,它也工作了 Col A ColD AB 60 CD 5 FG 25 HI 180 OP 566
Dim Sh As Worksheet
Dim LastRow As Long
Dim Rng As Range
Set Sh = Worksheets(1)
Sh.Columns(5).Insert
LastRow = Sh.Range("A65536").End(xlUp).Row
With Sh.Range("A1:A" & LastRow).Offset(0, 4)
    .FormulaR1C1 = "=IF(COUNTIF(R1C[-4]:RC[-4],RC[-4])>1,"""",SUMIF(R1C[-4]:R[" & LastRow & "]C[-4],RC[-4],R1C[-1]:R[" & LastRow & "]C[-1]))"
    .Value = .Value
End With
Sh.Columns(4).Delete
Sh.Rows(1).Insert
Set Rng = Sh.Range("D1:D" & LastRow + 1)
With Rng
    .AutoFilter Field:=1, Criteria1:="="
    .SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With