下面我们就来看看在Excel VBA程序,消除重复。

现状:

在A列中,我们有10个号码。我们要删除这些号码复制并把识别号列B

Remove Duplicates in Excel VBA

1.首先,我们声明四个变量。布尔型的TOADD,类型整数,I型的整数,和类型的整数j的uniqueNumbers。

Dim toAdd As Boolean, uniqueNumbers As Integer, i As Integer, j As Integer

2.接下来,我们写入列B中的第一数量的塔A的由于第一数目总是“独特的”。

Cells(1, 2).Value = Cells(1, 1).Value

3.我们初始化两个变量。我们刚刚增加了一个数列B,所以我们用值1.设置TOADD为True假设下一个数字需要被添加以及初始化uniqueNumbers(这不一定当然是真的)。

uniqueNumbers = 1

toAdd = True

我们需要确定第二个数字是“独一无二”与否。这可以在一个非常简单的方法来完成。只有如果该号码不是已经在列B,需要被添加到柱B中的第二数量

4.我们还需要检查这个第三号,第四号,等等。我们开始为这个For Next循环。

For i = 2 To 10

5.现在到了计划中最重要的组成部分。如果第二个数字是在B列等于号码中的一个(到目前为止,我们只有一个唯一的号码),我们因为在这种情况下,我们不希望添加这个号码设置TOADD为False! (它不是“唯一”)。目前uniqueNumbers仍然等于1,但uniqueNumbers可以是一个完整列表。要对此进行检查整个列表,我们需要另一个For Next循环。还是那句话:如果我们要添加的数量等于在这个列表中的一个号码,TOADD将被设置为False,数量不会被添加。添加以下代码行:

For j = 1 To uniqueNumbers

If Cells(i, 1).Value = Cells(j, 2).Value Then

toAdd = False

End If

Next j

6.只有TOADD仍然是真实的,而不是设置为False,Excel的VBA需要将号码添加到列B.与此同时,我们增加1 uniqueNumbers因为我们现在更拥有一个唯一的编号。下面的代码行完成这项工作:

If toAdd = True Then

Cells(uniqueNumbers + 1, 2).Value = Cells(i, 1).Value

uniqueNumbers = uniqueNumbers + 1

End If

7.最后,我们设置TOADD为True假设需要添加下一个号码(第三号)。同样,这未必是真实的。

toAdd = True

8.不要忘记关闭循环。

Next i

9.将你的命令按钮宏并对其进行测试。

结果:

Remove Duplicates Result