我在Excel中使用VBA删除活动区域中的重复值,该区域的长度约为12000行,并且在单个列内。但是,当我在所选区域上运行RemoveDuplicates命令时,它会删除重复值所在的整个行。我的代码显示如下:
Sub Dedupe()
Range("B1").Select
ActiveCell.Resize(12109, 1).Select
ActiveCell.RemoveDuplicates Columns:=1, Header:=xlYes
End Sub我的问题是,这会删除相邻列中的重要数据,我计划接下来删除这些列中的重复数据。我想让这个过程循环遍历大约900列,并分别对每一列重复执行重复数据删除。有没有一种方法可以使用VBA代码删除当前选定内容中的重复值,而不是删除整个行?
谢谢。
发布于 2016-08-23 07:10:43
下面是一个可以设置为循环的脚本。它将列字母作为变量Finds the last Row。然后删除重复项。
您将需要更改工作表名称(如果可以,请避免使用activesheet,因为您最终可能会删除不想要的工作表上的重复项。
需要注意的一件事是,单元格值是在列中显示的,所以如果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发布于 2016-08-23 14:29:44
您可以像下面这样遍历列:
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 Subhttps://stackoverflow.com/questions/39089881
复制相似问题