基于名称EXCEL VBA的数量总和

时间:2017-02-16 11:03:03

标签: excel vba excel-vba

我试图计算特定名称的总数量,例如' test'基于Incoming和Outgoing,公式为=(SUMIF((B2:B6),"test",C2:C6)),但我并不完全确定如何在vba excel中执行此操作。有人可以帮帮我吗?

A       B   C                       D
NAME    QTY DATE                    TYPE
test    1   16/2/2017 5:33:51 PM    Incoming
test    1   16/2/2017 6:16:11 PM    Incoming
rice    4   16/2/2017 6:16:23 PM    Incoming
test    -1  16/2/2017 6:16:40 PM    Outgoing

2 个答案:

答案 0 :(得分:1)

这应该可以解决问题

Sub GetSum()
    Dim rng As Range, sum_range As Range

    With ThisWorkbook.Worksheets("Sheet1") 'update for your sheet name
        Set rng = .Range("A2:A6")
        Set sum_range = .Range("B2:B6")
        .Range("F2").Value = Application.WorksheetFunction.SumIf(rng, "test", sum_range) 'change F2 to your output cell
    End With
End Sub

<强>更新

我编辑了范围地址以符合您的描述:&#34; ...计算特定名称的总数量&#34;。

答案 1 :(得分:0)

确切的翻译将是

   someRange.Value=WorksheetFunction.SUMIF(range("B2:B6"),"test",range("C2:C6"))

但我想你实际上是在

之后
   someRange.Value=WorksheetFunction.SUMIF(range("A2:A6"),"test",range("C2:C6"))

因为在你的例子中“test”在A列中

在任何情况下都将 1st 范围设置为搜索“test”的位置,将 2nd 范围设置为总结的位置