プロが教えるわが家の防犯対策術!

こんにちは。

最下段に、「検索したい文字以外の行を削除する」という処理をするソースを記入しました。
この処理を、ブック内のすべてのワークシートに対して行いたいと試行錯誤しておりますが、なかなか上手くいきません(当方はvba超初心者です)。

ワークシートの枚数が大量にあり各シートに同じ処理を手作業で行うには、相当な手間となります。
どなたか教えていただけないでしょうか(汗)

-----------
Sub Sample1()
Dim i As Long
For i = Cells(Rows.Count, "D").End(xlUp).Row To 2 Step -1
If InStr(Cells(i, "D"), "検索したい文字") = 0 Then
Rows(i).Delete
End If
Next i
End Sub
-----------

A 回答 (1件)

こんにちは



>ブック内のすべてのワークシートに対して行いたい
単純に、ご提示の処理をシート全部に対してループすれば良さそうです。
標準モジュールに記入して、試してみてください。

Sub Sample()
Dim sh As Worksheet
Dim i As Long

For Each sh In Worksheets
 For i = sh.Cells(Rows.Count, "D").End(xlUp).Row To 2 Step -1
  If InStr(sh.Cells(i, "D"), "検索したい文字") = 0 Then
   sh.Rows(i).Delete
  End If
 Next i
Next sh
End Sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!