我有一个工作表,其中包含来自两个不同来源的一些合并数据。有一个共同/共享列 - 时间/日期。
列B-E包含列F-G时的数据,反之亦然。
我想要做的是,从F列开始,当我找到一个值时,我想去E列并一直工作直到找到一个值。此时,我想检查它的值 - 如果它小于4,那么我想删除最初触发E列查找的行。
然后,继续往下走。由于我过去发现的事情,我可能需要反过来(从底部开始,然后继续前进),但我还不确定。
所以,我现在正在处理的代码如下 - 它无法正常工作,我正在尝试对其进行故障排除以使其正常工作,但我遇到了困难。非常感谢您提供的任何信息/建议/帮助。
Set myrange = Sheets("Test Sheet").Range("F2", Range("F" & Rows.Count).End(xlUp))
For Each mycell In myrange
rrow = rrow + 1
If IsEmpty(mycell.Value) = False Then
For j = rrow To 0 Step -1
If IsEmpty(mycell.Offset(j, -1)) = False And mycell.Cells(j, -1).Value < 4 Then
mycell.Cells(rrow, -1).EntireRow.Delete
GoTo line
Else
End If
Next j
line:
Else
End If
Next mycell
答案 0 :(得分:1)
试试这个:
Sub DeleteRows()
Dim ColFRow As Long
Dim ColERow As Long
Dim ToDelete As Range
For ColFRow = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If (Not IsEmpty(Cells(ColFRow, 6).Value)) Then
For ColERow = ColFRow To 0 Step -1
If (Not IsEmpty(Cells(ColERow, 5).Value)) Then
If Cells(ColERow, 5).Value > 4 Then
If ToDelete Is Nothing Then
Set ToDelete = Cells(ColFRow, 1).EntireRow
Else
Set ToDelete = Union(ToDelete, Cells(ColFRow, 1).EntireRow)
End If
End If
Exit For
End If
Next ColERow
End If
Next ColFRow
ToDelete.Delete
End Sub