Excel VBA SUMIF 运行-时间错误“424”:需要对象
Excel VBA SUMIF Run-time error '424': Object Required
这会产生一个错误:运行-time error '424': Object Required
Private Function Y_Mode() As Double
Dim MaxGrad As Double
MaxGrad = WorksheetFunction.Max(Graduation_Series)
Y_Mode = WorksheetFunction.SumIf(Graduation_Series, MaxGrad, Y_Series)
End Function
这条线失败了:
Y_Mode = WorksheetFunction.SumIf(Graduation_Series, MaxGrad, Y_Series)
一切似乎都已正确定义和实例化,每个数组的元素都是 Variant/Double
类型
Watch : + : Graduation_Series : : Variant/Variant(0 to 14) : SU_Solution.Y_Mode
Watch : : MaxGrad : 474.281204765715 : Double : SU_Solution.Y_Mode
Watch : + : Y_Series : : Variant/Variant(0 to 14) : SU_Solution.Y_Mode
我尝试将 MaxGrad 放入一个范围,然后在 SUMIF 中引用该范围,但这也没有用。
不能对数组使用 SUMIF。
The criteria that you can use with the SUMIF() worksheet function is
limited to text, numbers, or a range, and the function cannot use
array constants.
https://support.microsoft.com/en-us/help/275165/when-to-use-a-sum-if-array-formula
这会产生一个错误:运行-time error '424': Object Required
Private Function Y_Mode() As Double
Dim MaxGrad As Double
MaxGrad = WorksheetFunction.Max(Graduation_Series)
Y_Mode = WorksheetFunction.SumIf(Graduation_Series, MaxGrad, Y_Series)
End Function
这条线失败了:
Y_Mode = WorksheetFunction.SumIf(Graduation_Series, MaxGrad, Y_Series)
一切似乎都已正确定义和实例化,每个数组的元素都是 Variant/Double
类型Watch : + : Graduation_Series : : Variant/Variant(0 to 14) : SU_Solution.Y_Mode
Watch : : MaxGrad : 474.281204765715 : Double : SU_Solution.Y_Mode
Watch : + : Y_Series : : Variant/Variant(0 to 14) : SU_Solution.Y_Mode
我尝试将 MaxGrad 放入一个范围,然后在 SUMIF 中引用该范围,但这也没有用。
不能对数组使用 SUMIF。
The criteria that you can use with the SUMIF() worksheet function is limited to text, numbers, or a range, and the function cannot use array constants.
https://support.microsoft.com/en-us/help/275165/when-to-use-a-sum-if-array-formula