0

2 つの異なるソースからのマージされたデータを含むワークシートがあります。時刻/日付という共通/共有列が 1 つあります。

列 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 に答える