如果某一特定列在下一行重复某个单词,VBA将删除整行
我正在尝试编写一个vba代码,以便在同一列(E列)但在另一行中立即重复任何单词的情况下,去掉一行。如果发生这种情况,则要删除的行是位于顶部的另一行。下面是一个例子。在这种情况下,要删除的行是:E6、E10和E15 工作表的名称是test。列和F和G不相关 非常感谢 编辑以添加注释中的代码:如果某一特定列在下一行重复某个单词,VBA将删除整行,vba,excel,Vba,Excel,我正在尝试编写一个vba代码,以便在同一列(E列)但在另一行中立即重复任何单词的情况下,去掉一行。如果发生这种情况,则要删除的行是位于顶部的另一行。下面是一个例子。在这种情况下,要删除的行是:E6、E10和E15 工作表的名称是test。列和F和G不相关 非常感谢 编辑以添加注释中的代码: Sub delete_duplicates_column_E() With Sheets("test").Range("A:E") .Value = .Value .
Sub delete_duplicates_column_E()
With Sheets("test").Range("A:E")
.Value = .Value
.RemoveDuplicates Columns:=5, Header:=xlYes
End With
End Sub
刚刚做了这个,试试看:
Sub-removeDuplicates()
范围(“E2”)。选择
直到ActiveCell.Value=“”
如果ActiveCell.Value=ActiveCell.Offset(1.Value),则
ActiveCell.EntireRow.Delete(xlShiftUp)
如果结束
ActiveCell.Offset(1)。选择
环
End Sub
刚刚启动了此功能,请尝试:
Sub-removeDuplicates()
范围(“E2”)。选择
直到ActiveCell.Value=“”
如果ActiveCell.Value=ActiveCell.Offset(1.Value),则
ActiveCell.EntireRow.Delete(xlShiftUp)
如果结束
ActiveCell.Offset(1)。选择
环
End Sub
删除行时,最好向回循环:
Sub delete_duplicates_column_E()
Dim ws As Worksheet
Dim lastrow As Long
Dim i As Long
Set ws = Sheets("test")
With ws
lastrow = .Range("E" & .Rows.Count).End(xlUp).Row
For i = lastrow To 2 Step -1
If .Cells(i, 5) = .Cells(i + 1, 5) Then
.Rows(i).Delete
End If
Next i
End With
End Sub
删除行时,最好向回循环:
Sub delete_duplicates_column_E()
Dim ws As Worksheet
Dim lastrow As Long
Dim i As Long
Set ws = Sheets("test")
With ws
lastrow = .Range("E" & .Rows.Count).End(xlUp).Row
For i = lastrow To 2 Step -1
If .Cells(i, 5) = .Cells(i + 1, 5) Then
.Rows(i).Delete
End If
Next i
End With
End Sub
你能展示一下到目前为止你写的代码吗?是的。但这并不是我想要的,因为Z删除了所有的重复项。请参见下面的:“Sub delete_duplicates_column_E()与工作表(“test”).Range(“A:E”).Value=.Value.removedupplicates Columns:=5,Header:=xlYes End With End Sub”您能显示到目前为止编写的代码吗?是的。但这并不是我想要的,因为Z删除了所有的重复项。请参见下面的内容:“Sub delete_duplicates_column_E()与工作表(“test”)。范围(“A:E”)。值=。值。removedupplicates Columns:=5,Header:=xlYes End With End Sub”似乎正在工作!谢谢添加到您的代码中,只需设置ws=Sheets(“test”)ws。选择ws.Range(“E2”)。选择不是问题,只需记住
。选择可能非常不稳定,应该在任何时候都避免。它似乎正在工作!谢谢添加到您的代码中,只需设置ws=Sheets(“test”)ws。选择ws.Range(“E2”)。选择不是问题,只需记住。选择可能非常不稳定,应尽可能避免。