📜  如何在 Excel 中使用 VBA 从数组中删除重复项?(1)

📅  最后修改于: 2023-12-03 14:52:17.167000             🧑  作者: Mango

如何在 Excel 中使用 VBA 从数组中删除重复项?

在 Excel 中,我们经常需要对数据进行去重操作,以保证数据的准确性和合法性。而在 VBA 中,我们可以通过数组来实现去重操作,以下是具体实现步骤。

1. 定义数组

首先,我们需要定义一个数组来存储要去重的数据。数组可以是一维或多维的,可以根据实际情况进行定义。

' 声明一个一维数组,用于存储数据
Dim arrData() As Variant
2. 读取数据

然后,我们需要将待去重的数据读入数组中。数据来源可以是 Excel 表格中的一列数据,也可以是其他数据源。

' 读取 Excel 表格中的一列数据
arrData = Range("A1:A10").Value
3. 去重操作

接下来,我们可以使用 VBA 的内置函数或自定义函数来实现数组去重。以下是一种常用的去重方法,可以根据实际情况进行适当修改。

' 去重操作
Function RemoveDuplicates(arr As Variant) As Variant
    Dim dict As Object  ' 声明字典对象
    Set dict = CreateObject("Scripting.Dictionary")  ' 创建字典对象

    ' 遍历数组中的元素,将不重复的元素添加到字典中
    For i = LBound(arr) To UBound(arr)
        If Not dict.exists(arr(i, 1)) Then
            dict(arr(i, 1)) = ""
        End If
    Next i

    ' 将字典中的元素复制到新数组中,并返回新数组
    RemoveDuplicates = dict.keys
End Function

' 调用去重函数
arrUnique = RemoveDuplicates(arrData)
4. 输出结果

最后,我们可以将去重后的结果输出到 Excel 表格中,或者进行其他操作。以下是将结果输出到 Excel 表格中的代码。

' 将去重后的结果输出到 Excel 表格中
Range("B1").Resize(UBound(arrUnique), 1).Value = WorksheetFunction.Transpose(arrUnique)

至此,我们就完成了从数组中删除重复项的操作。