如何在不删除相邻数据的情况下在单个列中运行RemoveDuplicates?

我在Excel中使用VBA删除大约12000行的有效范围内的重复值,并在一个列中。 但是,当我在所选范围上运行RemoveDuplicates命令时,它将删除重复值所在的整个行。我的代码如下所示:

Sub Dedupe() Range("B1").Select ActiveCell.Resize(12109, 1).Select ActiveCell.RemoveDuplicates Columns:=1, Header:=xlYes End Sub 

我的问题是,这删除了我打算接下来重复数据删除的相邻列中的重要数据。 我想通过大约900个列循环进程,并为每个列重复单个重复数据删除。 有没有办法使用VBA代码来删除当前select中的重复值,但不删除整个行?

谢谢。

这是一个可以设置循环的脚本。 它将列字母作为variables查找最后一行 。 然后删除重复。

您将需要更改工作表名称(如果可以,请避免使用活动工作表,因为您最终可能会删除您不想要的工作表上的重复项。

有一点需要注意的是,单元格值在列中出现,所以如果A5与B5排列在一起,这将会使你的行出现乱码。

 sub test() dim myCol as string myCol = "B" With Sheets("Sheet1") LastRow = .Range(myCol & .Rows.Count).End(xlUp).Row .Range(myCol & "1:" & myCol & LastRow).RemoveDuplicates Columns:=1, Header:=xlYes End With end sub 

你可以像下面这样排列:

 Option Explicit Sub test() Dim col As Range With Worksheets("Dupes").Range("B:D") '<--| change "Dupes" with your actual sheet name and ""B:D" with your actual columns range For Each col In .Columns col.RemoveDuplicates Columns:=Array(1), Header:=xlYes Next col End With End Sub