我在Excel中使用VBA删除活动范围内的重复值,该活动范围大约为12000行,并且在一列中。但是,当我在所选范围上运行RemoveDuplicates命令时,它会删除存在重复值的整个行。我的代码如下所示:
Sub Dedupe()
Range("B1").Select
ActiveCell.Resize(12109, 1).Select
ActiveCell.RemoveDuplicates Columns:=1, Header:=xlYes
End Sub
我的问题是,这会删除我计划接下来重复数据删除的相邻列中的重要数据。我想让流程循环大约900列,并分别为每列重复重复数据删除。有没有办法使用VBA代码删除当前选择中的重复值,但不能删除整行?
谢谢。
答案 0 :(得分:1)
这是一个可以设置为循环的脚本。它将Column letter作为变量Finds the last Row。然后删除重复项。
您需要更改工作表名称(如果可以,请避免使用活动工作表,因为您最终可能会删除不想要的工作表上的重复项。
有一点需要注意的是,单元格值会在列中显示出来,因此如果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
答案 1 :(得分:0)
你可以浏览以下列:
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