excel unique function in vba

在 VBA 中,您可以使用 WorksheetFunction 对象调用 Excel 中的函数。 UNIQUE 函数是 Excel 2019 版本新增的函数,如果您使用的是较早的版本,可能没有这个函数。但您仍然可以在 VBA 中模拟这个函数的功能。

以下是在 VBA 中实现 UNIQUE 函数的一种方法:

Function UniqueValues(ByVal inputRange As Range) As Variant
    Dim arr() As Variant
    Dim dict As Object
    Dim i As Long, j As Long
    Set dict = CreateObject("Scripting.Dictionary")
    arr = inputRange.Value
    For i = LBound(arr, 1) To UBound(arr, 1)
        For j = LBound(arr, 2) To UBound(arr, 2)
            If Not dict.exists(arr(i, j)) And Not IsEmpty(arr(i, j)) Then
                dict.Add arr(i, j), Nothing
            End If
        Next j
    Next i
    UniqueValues = dict.keys
End Function

这个函数的输入参数是一个范围对象 inputRange,它包含要提取唯一值的数据。函数返回一个数组,其中包含输入范围中的唯一值。

该函数使用一个 Scripting.Dictionary 对象来存储唯一值,并使用一个循环来遍历输入范围中的每个单元格。在循环中,如果单元格的值尚未存在于字典中,就将该值添加到字典中。最后,函数返回字典中的所有键(即唯一值)的数组。

您可以将此函数添加到您的 VBA 代码中,并像其他 VBA 函数一样在 Excel 中调用它。例如,假设您有一个名为 dataRange 的单元格范围,并且您希望从中提取唯一值。您可以使用以下代码调用 UniqueValues 函数:

Dim uniqueArray() As Variant
uniqueArray = UniqueValues(dataRange)

这将返回一个包含唯一值的数组,您可以在代码中进一步处理它,或将其输出到工作表上。

  •