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 & "" ")"
答案 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 & ", ""="")"