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

📅  最后修改于: 2022-05-13 01:57:35.256000             🧑  作者: Mango

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

Excel VBA 代码,用于从给定的单元格区域中删除重复项。在下面的数据集中,我们在“A 列”范围 A1:A15 中给出了 15 个数字的列表。需要删除重复项并在 B 列中放置唯一编号。

样本数据:单元格 A1:A15

样本数据

最终输出:

VBA 代码删除重复项并放入下一列 (B)

声明变量:

VariablesData TypeComments
nonDuplicateBooleanIt is a Boolean value (True/False).
uNoIntegerCount no of Unique items in column B
colAIntegerIteration column A cells
colBIntegerIteration column B cells

'Variable Declarations
Dim nonDuplicate As Boolean, uNo As Integer, colA As Integer, colB As Integer

总是第一个值是唯一的,所以 A1 放置到单元格 B1

'Place first value to B1
Cells(1, 2).Value = Cells(1, 1).Value

初始化变量:

'Initialize uNo = 1 since first number is already placed in column B; Assign True to the variable nonDuplicate

uNo = 1

nonDuplicate= True

由于第一个数字已经放在单元格 B1 中,循环从 A2 开始到 A15。从 A 列中取出每个数字并检查 B 列(唯一范围)

'Use for loop to check each number from A2 to A15 
For colA = 2 To 15
    For colB = 1 To uNo

如果数字已经放在 B 列中。将 False 分配给“nonDuplicate”变量。

If Cells(colA, 1).Value = Cells(colB, 2).Value Then
            nonDuplicate= False
        End If

“nonDuplicate” 为 True 然后放置到 B 列并将 uNo 增加 1

'if nonDuplicate is true, place cell value in column B and increase uNo = uNo + 1
    If nonDuplicate = True Then
        Cells(uNo + 1, 2).Value = Cells(colA, 1).Value
        uNo = uNo + 1
    End If

重置“nonDuplicate”变量

'reset nonDuplicate to True
nonDuplicate = True

关闭 for 循环

Next colA

执行:

按照以下步骤使用 Excel VBA 删除重复项:

第 1 步:将形状( VBA 删除重复项)添加到工作表

第2步:右键单击“VBA删除重复项”和“分配宏..”

第 3 步:选择“removeDuplicates”,您可以看到工作簿中可用的宏列表

第 4 步:将您的 Excel 文件另存为“启用 Excel 宏的工作簿” *.xlsm

第 5 步:单击“VBA Remove Duplicates”执行 VBA 代码并查看输出