SumIf语句-复杂的条件

时间:2018-06-22 16:22:39

标签: excel vba excel-vba

这是我的故事。下面的代码将计算从第84行开始的所有行,该行在R列中具有“ 1”,在K列中以“ B”开头,为“ 98(宏)”或“ 98” “在L列中。

B_black = Application.Sum(Application.SumIfs(Range("R84:R" & LastRow), Range("R84:R" & LastRow), "1", Range("K84:K" & LastRow), "B*", Range("L84:L" & LastRow), Array("98 (macro)", "98")))

我不需要用该标准来计算行数,而是需要它本质上求和R列中的匹配项总数。之前,R列中的值将为“ 1”或为null。现在,它可以为null或1-9。我该怎么办?

编辑: 我将要发表许多这样的声明。我已经把它们全部写完了。我希望我可以对每条语句做一个小的更改,以计算符合条件的行中R列中的数量。

1 个答案:

答案 0 :(得分:0)

如果要 R 列中的而不是计数行,则:

Sub Robby()
    Dim B_black As Long, n As Long, i As Long
    B_black = 0
    n = Cells(Rows.Count, "R").End(xlUp).Row
    For i = 83 To n
        If Left(Cells(i, "K").Value, 1) = "B" And (Cells(i, "L").Value = 98 Or Cells(i, "L").Value = "98 (macro)") Then
            B_black = B_black + Cells(i, "R").Value
        End If
    Next i
End Sub

不需要使用工作表功能。

EDIT#1:

如果工作表单元格中已经有方程式,那么那里已经有75%。

说我们正在使用:

=VLOOKUP(B1 & B2,F1:J16,2,FALSE)

在一个单元格中。要在VBA中执行此操作,请编写以下代码:

Sub DoItInAMacro()
    Dim s As String
    s = Evaluate("=VLOOKUP(B1 & B2,F1:J16,2,FALSE)")
    MsgBox s
End Sub

enter image description here