完整代码如下:
Function MergerRepeat(Index As Integer, ParamArray arglist As Variant)
---------------------------------------------
'时间:2008-12-26
'理整:宇 bengdeng
'功能:获得指定单元格区域或中不重复集合或值
'参数介绍说明:
'Index:整型当值小于1时返回个集合;
' 大于1且小于不重复项时返回个不重复值
' 大于不重复项时返回空
'arglist:可为单元格区域或常量
----------------------------------------------
Dim NotRepeat As Object, tStr As String
Set NotRepeat = CreateObject("Scripting.Dictionary")
For Each arg In arglist
For Each rRan In arg
If TypeName(rRan) = "Range" Then
If rRan.Value <> "" Then NotRepeat(rRan.Value) = 0
Else
NotRepeat(rRan) = 0
End If
Next
Next
If Index < 1 Then
MergerRepeat = NotRepeat.keys
ElseIf Index <= NotRepeat.Count Then
arr = NotRepeat.keys
MergerRepeat = arr(Index - 1)
Else
MergerRepeat = ""
End If
End Function
下面用几个应用例子来介绍说明该应用
1、返回A1:A10中不重复值个数
=COUNTA(MergerRepeat(0,A1:A10))
2、在B列从B1格开始列出A1:A10不重复数值
在B1格设定公式:
=MergerRepeat(ROW,$A$1:$A$10)
并向下填充
3、求多个区域(可以不连续)加不重复个数
=COUNTA(MergerRepeat(0,A1:A6,{"abc","Excel吧",1,"excelba.com"},C2:C6))
上面已经完全阐述了这个思路方法使用大家看了的后可以结合实战来验证下我思路如果有朋友认为好转载了请你注明你文章来源于officeba.com.cn谢谢我以后会提供更多更好文章给大家!
最新评论