在本文中,我们将创建自定义函数以在定义的范围内查找唯一值。

此示例的原始数据由国家名称在A8:A21范围内的重复条目组成。

ArrowRawData

逻辑解释

我们创建了一个自定义函数“ UniqueItem”,以从范围中提取唯一值。该函数将两个参数作为输入。

第一个参数是由重复数据组成的范围,第二个参数定义唯一集合中唯一值的索引号。

此函数根据索引号返回范围内的唯一值。第二个参数是可选参数,如果未指定第二个参数,则函数返回定义范围内唯一值的数量。

如果为第二个参数定义的值大于该范围内唯一值的数量,则该函数将返回最后一个唯一值。

ArrowOutput

代码说明

输入错误范围内每个CellValue的错误继续恢复CUnique.Add CellValue.Value,CStr(CellValue.Value)

[_GoBack] # Next On Error GoTo 0上面的代码用于创建集合对象,该对象将包含定义范围内的唯一值。 “错误时”语句用于处理错误,因为当代码尝试将重复值放入集合中时,集合将生成错误。

请遵循以下代码

Option Explicit

Function UniqueItem(InputRange As Range, Optional ItemNo As Integer = 0) As Variant

Dim CellValue As Range

Dim CUnique As New Collection

Dim UCount As Integer

On Error Resume Next

'Adding unique items to collection from defined range

For Each CellValue In InputRange

CUnique.Add CellValue.Value, CStr(CellValue.Value)

Next

On Error GoTo 0

'Getting count of unique item in the collection

UCount = CUnique.Count

If ItemNo = 0 Then

'Returning count of unique item

UniqueItem = UCount

ElseIf ItemNo <= UCount Then

'Returning unique value based on item number

UniqueItem = CUnique(ItemNo)

Else

'Returning last unique value

UniqueItem = CUnique(UCount)

End If

End Function

如果您喜欢此博客,请在Facebook和Facebook上与您的朋友分享。

我们很希望收到您的来信,请让我们知道我们如何才能改善我们的工作并使您的工作更好。写信给我们[email protected]