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
标注为数字(Integer
、Long
、LongLong
、Single
或 Double
)? LastRow
的值是多少?如果您的工作表太大(超过 32 000 行),请确保您没有 LastRow
和 Integer
。您似乎对公式本身没有错误。
对不起,您有一个错误:如果您使用 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的主要内容,如果未能解决你的问题,请参考以下文章