我的问题是针对VBA Excel。我有一个数据集与此类似:(编辑)VBA Excel:总和重复3个变量
Order Number Description Item Code Value
AA000001 Mopping Service Payment 00001 100.00
AA000001 Mopping Service Discount 00001 -50.00
AA000001 Bucket Rental 00002 50.00
AA000001 Bucket Rental Discount 00002 -25.00
AA000001 Mopping Service Payment 00001 25.00
AA000001 Bucket Rental 00002 10.00
AA000002 Mopping Service Payment 00001 100.00
AA000002 Mopping Service Discount 00001 -50.00
AA000002 Bucket Rental 00002 50.00
AA000002 Bucket Rental Discount 00002 -25.00
我想输出什么:
Order Number Description Item Code Value
AA000001 Mopping Service Payment 00001 75.00
AA000001 Bucket Rental 00002 35.00
AA000002 Mopping Service Payment 00001 50.00
AA000002 Bucket Rental 00002 25.00
我发现在interwebs下面的代码,并修改了它略有下降,但我的问题是,它没有任何逻辑,只是基于订单号来组合重复项(相反,它将替换所有具有相同值的项目代码,而不考虑订单号)。是否有方法添加代码以获取所有对于一个给定的订单号码是相似的项目代码并将它们相加?
我需要添加什么?我错过了什么?提前致谢!
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[-2]:RC[-2],RC[-2])>1,"""",SUMIF(R1C[-2]:R[" & LastRow & "]C[-2],RC[-2],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
这看起来像是你可以用数据透视表完成.... –
是,我的问题是,它是一个较长的VBA代码的一部分,而不是使它我曾想过要采取两个步骤,但这比我原先想象的要复杂得多。 –