VBA为SumIF添加了多个标准

时间:2018-03-24 17:16:40

标签: excel vba excel-vba

EndRowH = ActiveSheet.Range("H65536").End(xlUp).Row
ActiveSheet.Range("H1").Formula = "=SUMIFS(H3:H" & EndRowH & ", C3:C" & EndRowH & ",  "">=" & lngStart & """)"

我在C列上有一个标准,它必须大于lngStart值。

代码工作到这里..但是我必须添加一个额外的标准,只有当列I中有空白值时才需要完成sumif

Dim Blank As Long
Blank = ""
ActiveSheet.Range("H1").Formula = "=SUMIFS(H3:H" & EndRowH & ", C3:C" & EndRowH & ",  "">=" & lngStart & "",I3:I" & EndRowH & ",  ""!=" & Blank & "" ")"

2 个答案:

答案 0 :(得分:0)

使用复杂的字符串时,您希望将其作为Formula使用,您可能需要使用“帮助”字符串,在下面的代码中我使用FormulaString,因此当您运行Debug.Print时1}}行,您可以看到公式字符串是否有效。

此外,我只是偏好",我更喜欢使用Chr(34)

<强> 代码

Dim FormulaString As String

FormulaString = "=SUMIFS(H3:H" & EndRowH & ", C3:C" & EndRowH & "," & Chr(34) & ">=" & lngStart & Chr(34) & ",I3:I" & EndRowH & "," & Chr(34) & "<>" & Chr(34) & ")"
Debug.Print FormulaString

ActiveSheet.Range("H1").Formula = FormulaString

运行此代码,您将在即时窗口中看到以下公式:

=SUMIFS(H3:H10, C3:C10,">=5",I3:I10,"<>")

答案 1 :(得分:0)

我会走这条路

ActiveSheet.Range("H1").Formula = "=SUMIFS(H3:H" & EndRowH & ", C3:C" & EndRowH & ", concatenate("">=""," & lngStart & "),I3:I" & EndRowH & ", ""="")"