Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11748 / 76734 ←次へ | 前へ→

【70518】Re:削除
回答  Blue  - 11/11/23(水) 16:09 -

引用なし
パスワード
   たぶん、
>nn.EntireRow.Delete
が悪い。

外のFor Eachの範囲が行を削除したことで変わってしまうため。
(ループの中でループ元を変更するとおかしくなる)

以下適当に変更。

Private Sub 特定文字なら行削除()
Dim nn As Range
Dim bb As Variant
Dim r As New Collection

Application.ScreenUpdating = False
 For Each nn In ActiveSheet.UsedRange
  For Each bb In Array("名称", "工事番号", "小計")
   If nn.Value = bb Then
    On Error Resume Next
     r.Add nn, Str(nn.Row)
    On Error GoTo 0
   End If
  Next bb
 Next nn
 
For Each nn In r
 nn.EntireRow.Delete
Next
 
Application.ScreenUpdating = True
MsgBox "完了"
End Sub

4 hits

【70516】削除 next 11/11/23(水) 13:24 質問
【70517】Re:削除 Abyss 11/11/23(水) 15:47 発言
【70518】Re:削除 Blue 11/11/23(水) 16:09 回答
【70523】Re:削除 UO3 11/11/24(木) 15:26 発言

11748 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free