我在vba中使用这一行:
ActiveSheet.Range("U5").Value = Application.WorksheetFunction.SumIf(ActiveSheet.Range("U2:U4").Value, ">" & Date - 721, ActiveSheet.Range("T2:T4").Value)
我得到了
对象必需错误
我认为这是因为Date
,但我不确定什么是正确的语法。
答案 0 :(得分:1)
不要使用SumIf
中的Range
属性,因为该函数需要ActiveSheet.Range("U5").Value = Application.WorksheetFunction.SumIf(ActiveSheet.Range("U2:U4"), ">" & Date - 721, ActiveSheet.Range("T2:T4"))
作为参数。这应该有效:
{{1}}
在这种情况下,intellisense会提示这一点,你也可以将它应用于第三个参数:
答案 1 :(得分:1)
WorksheetFunction.SumIf
函数第一个参数是Range
,而不是Value
;同样适用于第三个参数。
注意:尽量不要依赖ActiveSheet
。
With Worksheets("Sheet1") ' modify "Sheet1" to your sheet's name
.Range("U5").Value = WorksheetFunction.SumIf(.Range("U2:U4"), ">" & Date - 721, .Range("T2:T4"))
End With