Excel VBA質問箱 IV

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

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


1346 / 13644 ツリー ←次へ | 前へ→

【74982】行 Delete 遅い 花鼻 13/11/5(火) 13:56 質問[未読]
【74985】Re:行 Delete 遅い ウッシ 13/11/5(火) 17:01 回答[未読]

【74982】行 Delete 遅い
質問  花鼻  - 13/11/5(火) 13:56 -

引用なし
パスワード
   いつもお世話になっております。

”詳細”の文字があるセルの行を全て削除したいと思い下記のコードで対応していますがとても遅いです。
どうすればもっと早く処理できるでしょうか。・゚・(ノД`)・゚・。
宜しくお願いします。


Sub 図5_Click()
Dim i
For i = 210 To 2 Step -1
If InStr(Cells(i, 2).Value, "詳細") > 0 Then
Rows(i).Delete Shift:=xlUp
End If
Next
End Sub

【74985】Re:行 Delete 遅い
回答  ウッシ  - 13/11/5(火) 17:01 -

引用なし
パスワード
   こんんちは

作業列使えるなら、

Sub test()
  With Worksheets("Sheet1")
    With .Range(.Cells(2, 2), .Cells(210, 2)).Offset(, Columns.Count - 2)
      .Formula = "=IF(ISERROR(FIND(""詳細"",B2,1)),"""",1)"
      .Value = .Value
      MsgBox WorksheetFunction.CountIf(.Cells, "1")
      If WorksheetFunction.CountIf(.Cells, 1) > 0 Then
        .SpecialCells(xlCellTypeConstants).EntireRow.Delete
      End If
    End With
  End With
End Sub


▼花鼻 さん:
>いつもお世話になっております。
>
>”詳細”の文字があるセルの行を全て削除したいと思い下記のコードで対応していますがとても遅いです。
>どうすればもっと早く処理できるでしょうか。・゚・(ノД`)・゚・。
>宜しくお願いします。
>
>
>Sub 図5_Click()
>Dim i
>For i = 210 To 2 Step -1
>If InStr(Cells(i, 2).Value, "詳細") > 0 Then
>Rows(i).Delete Shift:=xlUp
>End If
>Next
>End Sub

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