0

我有一个工作表,其中包含来自两个不同来源的一些合并数据。有一个共同/共享列 - 时间/日期。

当列 FG 不包含数据时,列 BE 包含数据,反之亦然。

我想做的是向下 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
4

1 回答 1

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
于 2013-08-08T20:38:22.873 回答