Excel VBA質問箱 IV

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

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


9650 / 76734 ←次へ | 前へ→

【72645】検索値以外を全て削除したい
質問  はってんちゅう  - 12/8/30(木) 15:26 -

引用なし
パスワード
   検索&削除のモジュールに関してです。

先日、UO3さんから検索対象の削除モジュールでアドバイスを頂き
無事解決したのですが、今度は検索対象以外のものすべてを削除するモジュールを
書いています。

以下がそれです。
コラムA にある科目名を頼りに“投資”以外の科目の行を全て削除させる目的です。10行目から科目が入るRowになります。

  Range("A10").Select
  m = 10
  Do Until Range("A" & m) = ""
    If Not Range("A" & m) = "投資" Then
      Rows(m).Delete
    End If
      m = m + 1
  Loop

50行ほどあるのですが、これだと、全削除されずにかなり残ってしまいます。
なんとなくそうなるダメな理由が解るような気がするものの、どうしていいのかが
解りません。

以下は、検索対象を削除するモジュールですが、これの反対(検索対象以外を削除)版を行いたいわけです。

Dim cNo As Range
Dim myR As Range
Dim firstaddress As String

  With Worksheets(2).Range("A9:AZ9")
    Set cNo = .Find("投資", LookIn:=xlValues, SearchOrder:=xlByRows)
  
    If Not cNo Is Nothing Then
      firstaddress = cNo.Address
      Do
        If myR Is Nothing Then
          Set myR = cNo
        Else
          Set myR = Union(myR, cNo)
        End If
    
        Set cNo = .FindNext(cNo)
    
      Loop While cNo.Address <> firstaddress
   
    End If
  
    If Not myR Is Nothing Then myR.EntireRow.Delete
  
  End With


これを上手く活用する事も出来るのでしょうが、上手くいきません。

どうぞご教示いただけますでしょうか。
宜しくお願い致します。
2 hits

【72645】検索値以外を全て削除したい はってんちゅう 12/8/30(木) 15:26 質問
【72647】Re:検索値以外を全て削除したい UO3 12/8/30(木) 15:49 発言
【72648】Re:検索値以外を全て削除したい ドカ 12/8/30(木) 16:29 回答
【72649】Re:検索値以外を全て削除したい はってんちゅう 12/8/30(木) 17:07 質問
【72650】Re:検索値以外を全て削除したい UO3 12/8/30(木) 17:26 発言
【72652】Re:検索値以外を全て削除したい はってんちゅう 12/8/30(木) 20:02 お礼
【72651】Re:検索値以外を全て削除したい ドカ 12/8/30(木) 17:46 発言
【72653】Re:検索値以外を全て削除したい はってんちゅう 12/8/30(木) 20:14 お礼

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