私はVBの初心者で、グーグルで答えを探しました。複数のExcelワークシートを循環させ、セルに特定の要素が含まれている行を削除するには、 N/A#N/A#)。Excelで複数のワークシートを使ってセルを削除する高速コード
クリーニングするxlシートのデータは、DATE、OPENの財務データです。ハイクローズ。行数が重要になり、ワークシートの数は2〜3,000になります。それは動作しますが、非常に遅く、私が学んでいるように、このコードをより速くする方法についての助けを感謝します。ありがとうございました。
Sub DataDeleteStage1()
ScreenUpdating = False
Dim lrow As Long
Dim ws As Worksheet
Dim icntr As Long
For Each ws In ThisWorkbook.Worksheets
lrow = ws.Cells(Rows.CountLarge, "a").End(xlUp).Row
For icntr = lrow To 1 Step -1
If ws.Name <> "HEADER" Then
If ws.Cells(icntr, "B") = "#N/A N/A" And ws.Cells(icntr, "C") = "#N/A N/A" And ws.Cells(icntr, "D") = "#N/A N/A" And ws.Cells(icntr, "E") = "#N/A N/A" Then
ws.Rows(icntr).EntireRow.Delete
End If
End If
Next icntr
Next ws
End Sub
'Forループ 'の前に' Application.ScreenUpdating = False'を、 'Forループ'の最後に 'Application.ScreenUpdating = True'を追加してみてください。 –
'AutoFilter'を試してみてください。 – SJR
速度を上げるには、ループ全体を避け、フィルタリングされた範囲に基づいて削除してください。この[Ozgridのページ](https://www.ozgrid.com/VBA/VBALoops.htm)を見てください –