我试图计算特定名称的总数量,例如' 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
答案 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 范围设置为总结的位置