【问题标题】:How to remove duplicate values in an individual column for multiple columns at once如何一次删除多个列的单个列中的重复值
【发布时间】:2017-06-23 22:13:36
【问题描述】:

如何一次删除所有列中各个列中的重复值?

如果我在 Excel 中选择 Remove Duplicates 工具并选择了多个列,则假定我正在寻找重复的列。

我想要删除各个列中的重复项,但我不想单独单击每个列。

  • 例如,假设我有一个包含 500 列的电子表格。 我想删除第 1 列(“A”)中的所有重复值,然后删除第 2 列(“B”)中的所有重复列,依此类推,直到第 500 列。

我的尝试:

  1. 录制宏。结果:

    ActiveWindow.ScrollColumn = 1
    Columns("A:A").Select
    Application.CutCopyMode = False
    ActiveSheet.Range("$A$1:$A$582").RemoveDuplicates Columns:=1, Header:=xlYes
    

    如您所见,由于某些原因,它会自动选择“A”列。我不知道如何使它一般选择我选择的列的字母。呜呜呜……

  2. 我尝试了以下方法:

    Col = Split(ActiveCell(1).Address(1, 0), "$")(0)
    Application.CutCopyMode = False
    ActiveSheet.Range("Col1:Col1581").RemoveDuplicates Columns:=1, Header:=xlYes
    

    但它也不起作用。

我该怎么做呢?


我正在使用 MS Excel 2010 (Professional Plus)

【问题讨论】:

  • 你试过什么?应该是一个非常简单的宏 - 只需打开宏记录器,从 A 中删除重复项,然后从 B 中删除,然后停止记录器。然后,您应该对如何做有一个很好的框架。查找“遍历工作表中的列”,看看你能做什么。然后,如果您仍然遇到困难,我们很乐意帮助您编写代码。
  • @BruceWayne 我更新了问题以反映我的尝试。一个简单的录制宏不起作用。

标签: excel duplicates


【解决方案1】:

要简单地遍历列并从该列中删除重复项,例如 AZ,您可以这样做:

Sub removeDups()
Dim col As Range
For Each col In Range("A:Z").Columns
    With col
        .RemoveDuplicates Columns:=1, Header:=xlYes
    End With
Next col
End Sub

您可以根据需要进行调整,无论是将范围设置为等于您的选择,还是将范围扩展到 AZ

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-24
    • 2015-10-17
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2018-05-01
    相关资源
    最近更新 更多