基于名称EXCEL VBA的数量总和

我试图计算一个特定名称的总数量,例如基于传入和传出的“testing”,公式是=(SUMIF((B2:B6),"test",C2:C6)) ,但是我不完全确定如何我可以在VBA的Excel中做到这一点。 谁能帮帮我吗?

 ABCD 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 

这应该做的伎俩

 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 

更新

我编辑了范围地址以符合您的描述:“…计算特定名称的总数”。

确切的翻译将是

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

但我想你实际上是在之后

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

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

在任何情况下,将第一范围设置为search“testing”的范围和第二范围作为总结的范围