创建自定义函数以计算列中的唯一值

时间:2014-09-28 10:32:21

标签: excel vba excel-vba excel-2010

我很擅长VBA。我想创建一个自定义函数= Unique(J2:J234),以便它掩盖执行该工作的实际函数集,即SUM(1 / COUNTIF(J2:J234,J2:J234))。这是我的代码:

Function Unique(Var As range)
     Unique = Application.SUM(1 / (Application.COUNTIF(Var, Var)))
End Function

由于

1 个答案:

答案 0 :(得分:0)

您的UDF无法正常工作,因为原始公式是一个数组公式(使用ctrl-shift-enter输入,并且没有简单的方法将其输入到UDF中

我建议使用集合对象的功能,以阻止输入具有重复键的项目:

Option Explicit
Function Unique(Var As Range)
    Dim V As Variant
    Dim C As Collection
    Dim I As Long
V = Var
Set C = New Collection

On Error Resume Next
For I = 1 To UBound(V, 1)
    C.Add V(I, 1), CStr(V(I, 1))
Next I
On Error GoTo 0

Unique = C.Count

End Function