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