Excel VBA質問箱 IV

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

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


5906 / 76734 ←次へ | 前へ→

【76433】Re:検索文字がある行を削除したい
発言  ichinose  - 14/11/30(日) 15:54 -

引用なし
パスワード
   ▼ペンネーム船長 さん:
>検索文字がある行を削除したいのですが、
>Set FoundCell = sh.Cells.FindNext(FoundCell)
>のところで、「RangeクラスのFindNextプロパティを取得できません。」
>のエラーが出てしまいます。
>アドバイスをお願いします。

Findメソッド Findnextメソッドでは、
検索が終了してから、処理をしてください。

検索しながら処理を行うと不具合の原因になります。


>Private Sub CommandButton1_Click()
>Dim sh As Worksheet
>Dim FoundCell As Range
>Dim FirstCell As Range
>Dim Target As Range
>Dim r As Integer
>  
>Set sh = Worksheets("表")
>Set FoundCell = sh.Cells.Find(What:="検索文字")
>
>If FoundCell Is Nothing Then
>  MsgBox "検索文字は見つかりませんでした"
>  Exit Sub
>Else
>  Set FirstCell = FoundCell
>  Set Target = FoundCell
>End If
>
>Do
>  Set FoundCell = sh.Cells.FindNext(FoundCell)
                '     このFoundcellのある行を
                '下の方でsh.Rows(r).Delete 行毎に削除しています
                ’エラーの直接の原因はこれです   
   'r = FoundCell.Row 要らない
>  If FoundCell.Address = FirstCell.Address Then
>    Exit Do
>  Else
>    Set Target = Union(Target, FoundCell)
>    'FoundCellの行を削除する
    ’sh.Rows(r).Delete  ここで削除しない 
>  End If
>Loop
If Not Target Is Nothing Then
  Set Target = Target.EntireRow
  Union(Target, Target).Delete
End If
’検索がすべて終わってから削除する
>End Sub

5 hits

【76432】検索文字がある行を削除したい ペンネーム船長 14/11/30(日) 14:10 質問[未読]
【76433】Re:検索文字がある行を削除したい ichinose 14/11/30(日) 15:54 発言[未読]
【76435】Re:検索文字がある行を削除したい ペンネーム船長 14/11/30(日) 21:55 お礼[未読]

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