【发布时间】:2020-01-20 23:32:28
【问题描述】:
我正在尝试计算表列中唯一值的数量。我已将范围设置为表中的相关列。在定义要计数的唯一值的数量时,我收到以下错误:
Required_Rows = WorksheetFunction.SumProduct(1 / WorksheetFunction.CountIf(Range(Rng), Range(Rng)))
【问题讨论】:
我正在尝试计算表列中唯一值的数量。我已将范围设置为表中的相关列。在定义要计数的唯一值的数量时,我收到以下错误:
Required_Rows = WorksheetFunction.SumProduct(1 / WorksheetFunction.CountIf(Range(Rng), Range(Rng)))
【问题讨论】:
您将无法以这种方式使用 Sumproduct 和 SumIf。尝试改用 Evaluate 方法...
Dim Required_Rows As Variant 'declared as Variant in case Evaluate returns error
Required_Rows = Evaluate("SUMPRODUCT(1/COUNTIF(A1:A10,A1:A10))")
If Not IsError(Required_Rows) Then
'do something
Else
'do something else
End If
请注意,Evaluate 有 255 个字符的限制。
编辑
使用您定义的 Range 对象(即 Rng),尝试...
Required_Rows = Evaluate("SUMPRODUCT(1/COUNTIF(" & Rng.Address(external:=True) & "," & Rng.Address(external:=True) & "))")
希望这会有所帮助!
【讨论】: