【问题标题】:vba sumifs multiple criteria in single columnvba sumifs 单列中的多个条件
【发布时间】:2020-03-06 14:52:51
【问题描述】:

假设我在 A 列和 B 列中有这个:

A    5
A_1  3
A_2  2
A_3  3
A_4  4

我想做:

Application.SumIfs(range("b:b"), range("b:b"), {"A", "A_2"})

然而这不起作用,数组值。

我不希望通过 EVALUATION() (或 [] 等效项),甚至不通过范围进行循环。 所以我正在寻找一种在标准值上使用多个选项的方法。

PS:SumIfs只是一个例子,因为我的条件不止一个,所以如果有人建议SumIf,那么不,我有理由不使用SumIf

谢谢

【问题讨论】:

    标签: arrays vba sumifs


    【解决方案1】:
    1. SUMIFS 必须是后期绑定:Application.SumIfsApplication.WorksheetFunction.SumIfs
    2. 包裹在Application.SumProduct
    3. 使用Array()

    Application.SumProduct(Application.SumIfs(range("b:b"), range("a:a"), Array("A", "A_2")))
    

    【讨论】:

    • 你能解释一下 Application.SumIfs 与 Application.WorksheetFunction.SumIfs 吗?
    • Application.SumIfs 是Late Bound,另一个是Early Bound。如果您使用 Early Bound 版本,它将无法解析并且您将收到解析错误。通过删除WorksheetFunction,它可以工作。
    • 不错!但是,不是Application.SumIfs(range("b:b"), range("A:A"), Array("A", "A_2"))吗?
    • @FaneDuru,是的,我刚刚复制了 OP 的公式。
    • @Scott Craner:我很确定!它发生在我身上很多次。只是想在答案代码上找到正确的解决方案,以便人们不太了解它是如何工作的...... :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多