在Excel VBA删除重复
下面我们就来看看在Excel VBA程序,消除重复。
现状:
在A列中,我们有10个号码。我们要删除这些号码复制并把识别号列B
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.将你的命令按钮宏并对其进行测试。
结果: