0
シート1とシート2の2つのワークシートがあります。シート1のセルがシート2のセルと一致する場合、VBA - 行を削除しますか?
シート1では、ユーザーがセルB21、B26、I21、I26、P21、P26に値を入力できるようにフォームを作成しました。
送信をクリックすると、次の利用可能な行の列A、B、C、D、E、Fのシート2にデータが挿入されます。
実行したマクロを作成しようとしていますが、値がsheet1の値と一致するシート2の行が削除されます。
私はIF文を使って単純なままにしていますが、これは私に型の不一致のエラーを与えます。
Sub QuickCull()
If Sheets(1).Range("B21").Value = Sheets(2).Range("A:A").Value And _
Sheets(1).Range("B26").Value = Sheets(2).Range("B:B").Value And _
Sheets(1).Range("P21").Value = Sheets(2).Range("C:C").Value And _
Sheets(1).Range("I21").Value = Sheets(2).Range("D:D").Value And _
Sheets(1).Range("I26").Value = Sheets(2).Range("E:E").Value And _
Sheets(1).Range("P26").Value = Sheets(2).Range("F:F").Value Then
Rows(ActiveCell.Row).EntireRow.Delete
End If
End Sub
私がどこに間違っているのか見せてもらえますか?
あなたは 'Match'で、すべての' If'sを交換する必要があります。
はコードの下をお試しください。たとえば、If If IsError(Application.Match(Sheets(1))を使用して、If Sheets(1).Range( "B21")。Value = Sheets(2).Range .Range( "B21")。値、シート(2)。範囲( "A:A")、0))Then'。 –
私の答えでコードをテストしましたか?どんなフィードバック? –