VBA - 具有多个条件的 SumIf

Posted

技术标签:

【中文标题】VBA - 具有多个条件的 SumIf【英文标题】:VBA - SumIf with multiple criteria 【发布时间】:2017-03-20 15:18:13 【问题描述】:

我无法弄清楚如何在 VBA 中为 SumIf 语句设置多个条件。这就是我现在使用的,只有一个标准来设置名为 Count_1 的变量的值。

Count_1 = Application.SumIf(Range("K84:K" & LastRow), "B*", Range("G84:G" & LastRow))

我需要添加另一个标准。除了K列的值需要以“B”开头外,L列的值也需要为80。

我知道这可以在 Excel 公式中使用 SumIfs 来完成,但我需要它在 VBA 中。

【问题讨论】:

sumifs 应该有帮助 SUMIFS 存在于 vba 中,Application.WorkSheetFunction.Sumifs() 我试过用这个,但它不起作用。 Count_1 = Application.SumIfs(Range("K84:K" & LastRow), "B*", Range("L84:L" & LastRow), "80", Range("G84:G" & LastRow)) 试试不带引号:80 而不是 "80" 我仍然遇到同样的错误。 【参考方案1】:

使用

Application.Sumifs(SumRange, CriteriaRange1, Criteria1, CriteriaRange2, Criteria2,...)

【讨论】:

我试过了,但它不起作用。我收到类型不匹配错误。 Count_1 = Application.SumIfs(Range("K84:K" & LastRow), "B*", Range("L84:L" & LastRow), "80", Range("G84:G" & LastRow)) 您是否将B_gold 标注为数字(IntegerLongLongLongSingleDouble)? LastRow 的值是多少?如果您的工作表太大(超过 32 000 行),请确保您没有 LastRowInteger。您似乎对公式本身没有错误。 对不起,您有一个错误:如果您使用 sumifs 通过公式上的条件范围字段更改条件字段...在您的第一条评论中没有注意到... Range -> Range -> Criteria -> Range -> Criteria ->... @Robby 从末尾删除列 G 引用:Count_1 = Application.SumIfs(Range("G84:G" & LastRow), Range("K84:K" & LastRow), "B*", Range("L84:L" & LastRow), "80")

以上是关于VBA - 具有多个条件的 SumIf的主要内容,如果未能解决你的问题,请参考以下文章

sumif和countif的区别

带有OR的多个条件的Excel Sumif

通过引用多个工作表的VBA编写SUMIF的问题

用多个条件分配的公式

具有多个条件的选择案例函数未循环

Excel表格如何单条件求和