这是我的故事。下面的代码将计算从第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列中的数量。
答案 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