Vba 创建自定义函数以计算列中的唯一值
我对excel VBA非常陌生。我想创建一个自定义函数=UniqueJ2:J234,这样它就屏蔽了执行此任务的真正函数集,即=SUM1/COUNTIFJ2:J234,J2:J234。下面是我的代码:Vba 创建自定义函数以计算列中的唯一值,vba,excel,excel-2010,Vba,Excel,Excel 2010,我对excel VBA非常陌生。我想创建一个自定义函数=UniqueJ2:J234,这样它就屏蔽了执行此任务的真正函数集,即=SUM1/COUNTIFJ2:J234,J2:J234。下面是我的代码: Function Unique(Var As range) Unique = Application.SUM(1 / (Application.COUNTIF(Var, Var))) End Function 谢谢您的自定义项将不起作用,因为原始公式是使用ctrl-shift-enter
Function Unique(Var As range)
Unique = Application.SUM(1 / (Application.COUNTIF(Var, Var)))
End Function
谢谢您的自定义项将不起作用,因为原始公式是使用ctrl-shift-enter输入的数组公式,并且没有简单的方法将其输入到自定义项中 我建议使用collection对象的功能,以防止输入具有重复键的项目:
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
我尝试了不同的修改,但没有结果。我得到的是价值!。如果有人可以帮忙,请使用Application.power…,-1而不是1/。。。您也可以在应用程序中使用,以避免重复。到目前为止,您是否通过使用任何建议获得了任何改进或解决方案?