Excel VBA-消除特定列中的重复值

Excel VBA-消除特定列中的重复值,excel,vba,Excel,Vba,我有一个有很多行ID的工作表 我想知道编写VBA过程的最佳方法,该过程将查看一列中的值范围,并仅用该范围中出现的唯一值替换整个范围。因此,1000个ID的列可能会减少到150个唯一ID的列。我不希望此过程影响工作表中其他列中的数据 那么,假设最初的A列是: *IDs* ID12 ID12 ID34 ID56 ID78 ID78 ID78 我想用新的a列替换该列: *IDs* ID12 ID34 ID56 ID78 谢谢你 注意:我知道如何通过几种不同的方式手动执行此操作,但我想对工作表中的每

我有一个有很多行ID的工作表

我想知道编写VBA过程的最佳方法,该过程将查看一列中的值范围,并仅用该范围中出现的唯一值替换整个范围。因此,1000个ID的列可能会减少到150个唯一ID的列。我不希望此过程影响工作表中其他列中的数据

那么,假设最初的A列是:

*IDs*
ID12
ID12
ID34
ID56
ID78
ID78
ID78
我想用新的a列替换该列:

*IDs*
ID12
ID34
ID56
ID78
谢谢你


注意:我知道如何通过几种不同的方式手动执行此操作,但我想对工作表中的每一个非空列循环执行此步骤,并且这些列的长度各不相同。

要实现您的目标,请执行以下操作:

  • 选择要删除重复项的整个列
  • 转到功能区
    数据>删除重复项
  • 设置
    我的数据有标题
    (根据您的输入)

  • 你完了。如果要在VBA中执行这些步骤-在开始之前打开宏录制器(Excel窗口的左下角)。

    要实现所需的功能,请执行以下操作:

  • 选择要删除重复项的整个列
  • 转到功能区
    数据>删除重复项
  • 设置
    我的数据有标题
    (根据您的输入)

  • 你完了。如果希望在VBA中执行这些步骤,请在开始之前打开宏录制器(Excel窗口的左下角)。

    您好,谢谢,但我知道如何手动执行此操作:/。我试图用VBA编写,但如果我想对不同长度的多列执行相同的过程,则使用宏记录器无法完成此任务。@user1893148列大小无关紧要,即使范围可能会更改。宏录制的代码是结束解决方案的良好开端-您只需添加循环即可。然而,如果你倾向于复杂化而不是简单化,或者这是为了VBA练习-选择是你的朋友,祝你好运!您好,谢谢,但我知道如何手动执行此操作:/。我试图用VBA编写,但如果我想对不同长度的多列执行相同的过程,则使用宏记录器无法完成此任务。@user1893148列大小无关紧要,即使范围可能会更改。宏录制的代码是结束解决方案的良好开端-您只需添加循环即可。然而,如果你倾向于复杂化而不是简单化,或者这是为了VBA练习-选择是你的朋友,祝你好运!