【发布时间】:2021-08-17 15:27:44
【问题描述】:
我有 3 列。我需要根据第 1、2、3 列删除具有重复项的行。如果一行包含来自另一行的相同数据但第 2 列为空白,这也将被视为重复。删除第2行空白列,保留数据完整的行。
以黄色突出显示的被认为是重复的,必须删除第 2 列中没有数据的行。
我被困在这里了。
Sub DeleteRows()
Dim Rng As Range
Dim i As Long
Set Rng = ThisWorkbook.ActiveSheet.Range("F:F")
With Rng
For i = .Rows.Count To 1 Step -1
If .Item(i) = "" Then
.Item(i).CurrentRegion.RemoveDuplicates Columns:=Array(1,3,)
End If
Next i
End With
End Sub
提前谢谢你!
【问题讨论】:
-
if cells(i,6)="" and (cells(i,4)=cells(i,7)=cells(i,8)) then rows(i).entirerow.delete -
(cells(i,4)=cells(i,7)=cells(i,8))在 VBA 中即使为真也返回假。If worksheetfunction.And(cells(i,6)="",cells(i,4)=cells(i,7),cells(i,7)=cells(i,8)) Then怎么样? -
谢谢,两者都很好,但副本仍然存在。我还需要进一步修改还是只复制粘贴条件?
-
为了数据输入,会不会有前导空格或结尾空格?如果处理非数字值,您可能需要使用
Trim()进行比较,例如“Hi”的Trim(Cells(i,4).Value)输出“Hi”。