Excel宏按给定列对数据进行排序,然后在更改列值x时,它会删除列y中的重复项

时间:2018-05-17 15:12:24

标签: excel vba excel-vba

我希望开发一个按B列对数据进行排序的宏,然后在B列中更改值时,它会在删除K列中的重复后提供E,F和K列中的数据总和,这也是C中的价值变化。

示例:

Example

按B列排序会将清单编号组合在一起,我们为每个清单的E,F列工作总计。 在K上,C列数据已经按运单号分组,这样每个具有相同运单号的行在K中包含相同的运费。因此,对于每个运单,我们只需要列k中的一个值,即可以是每运单第一次进入。 所以我们需要删除每个运单的重复。 然后我们最终得到每个清单的总运费,列E和F. 然后,我们在B中每个清单的更改中插入2个空白行。

manual solution

请帮助这是我到目前为止所做的。

    ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
    ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range( _
        "B3:B771"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.ActiveSheet.Sort
        .SetRange Range("A2:K771")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Selection.Subtotal GroupBy:=2, Function:=xlSum, TotalList:=Array(5, 6, 11) _
        , Replace:=True, PageBreaks:=True, SummaryBelowData:=True
End Sub

0 个答案:

没有答案