|    | 
     ▼ペンネーム船長 さん: 
>検索文字がある行を削除したいのですが、 
>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 
 | 
     
    
   |