2014-09-28 94 views
0

我對excel 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 

感謝

+0

我曾嘗試沒有結果不同的修改是什麼我得到#VALUE !.如果有人能幫助,請高興。 – user1841445 2014-09-28 10:33:19

+0

使用'Application.power(...,-1)'而不是1/...也可以使用'with application'來避免重複。 – 2014-09-28 15:17:20

+0

到目前爲止,您是否有任何改進或解決方案使用任何建議? – ZAT 2014-09-30 07:37:15

回答

0

您的UDF將無法工作,因爲原來的公式是數組公式(使用Ctrl移進進,並有進入的是沒有簡單的方法進入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 
相關問題