我想创建一个VBA宏,搜索A列,每次在该列中找到2个单元格(并且相邻!),以删除其中一个并向上移动。我希望它保留在A列中,并且每次出现副本时都会删除它。 我有一张excel表,可以交替输入这样的信息:
A
乙
A
乙
但我经常遇到像这样的障碍
A
乙
A
乙
乙
A
我希望它能够自动清除和移动单元格,但我不确定如何去做。 有什么建议吗?
编辑:我解决了自己的问题。答案如下,但这里再次帮助那些可能遇到过这个问题的人。没关系。我得到了这个。我录制了一个使用滤镜和简单公式的宏。在B列中,我将其放入:= IF(a1 = a2,“STOP”,“”)然后我将其拖动以复制它。然后我过滤了B列,只显示“STOP”单元格。然后我清除了那些细胞。然后我未经过滤的B栏显示全部。然后我转到主页>查找并选择>特殊>选择空白然后我删除并移动选定空白的单元格。然后我将B列公式拖下来为我录制的宏创建一个工作循环。下面是录音的结果:
Sub DUPES()
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=R[1]C[-1],""DLT"","""")"
Range("J2").Select
Selection.AutoFill Destination:=Range("J2:J1000"), Type:=xlFillDefault
Range("J2:J1000").Select
ActiveSheet.Range("$A$1:$L$500").AutoFilter Field:=10, Criteria1:="<>"
Range("I11:J11").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("A11").Select
ActiveSheet.Range("$A$1:$L$500").AutoFilter Field:=10
ActiveWindow.SmallScroll Down:=-42
Columns("I:I").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlUp
Range("J2").Select
Selection.AutoFill Destination:=Range("J2:J1000"), Type:=xlFillDefault
Range("J2:J1000").Select
Range("I2").Select
End Sub
答案 0 :(得分:0)
sub removedup
Columns("A:B").Select
ActiveSheet.Range("$A$1:$B$8").RemoveDuplicates Columns:=1, Header:=xlYes
end sub
功能区中的excel 2007/10/13中有一个删除重复按钮 - 但是如果你想要vba,这假定你在a1和b1中有列标题
答案 1 :(得分:0)
没关系。我得到了这个。我录制了一个使用滤镜和简单公式的宏。 在B栏中,我将其放入: = IF(A1 = A2, “STOP”, “”) 然后我拖下来复制它。 然后我过滤了B列,只显示“STOP”单元格。 然后我清除了那些细胞。 然后我未经过滤的B栏显示全部。 然后我去了Home&gt; Find and Select&gt; Special&gt; Select Blanks 然后我删除并移动选定空白的单元格。 然后我将B列公式拖下来为我录制的宏创建一个工作循环。 下面是录音的结果:
Sub DUPES()
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=R[1]C[-1],""DLT"","""")"
Range("J2").Select
Selection.AutoFill Destination:=Range("J2:J1000"), Type:=xlFillDefault
Range("J2:J1000").Select
ActiveSheet.Range("$A$1:$L$500").AutoFilter Field:=10, Criteria1:="<>"
Range("I11:J11").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("A11").Select
ActiveSheet.Range("$A$1:$L$500").AutoFilter Field:=10
ActiveWindow.SmallScroll Down:=-42
Columns("I:I").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlUp
Range("J2").Select
Selection.AutoFill Destination:=Range("J2:J1000"), Type:=xlFillDefault
Range("J2:J1000").Select
Range("I2").Select
End Sub