Excel VBA質問箱 IV

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

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


35000 / 76732 ←次へ | 前へ→

【46935】[行]の一括削除方法
質問  ボビー  - 07/2/22(木) 14:13 -

引用なし
パスワード
   以下のような[#]の付与された行の削除を一括して行うロジックを組みましたが、数件の場合は[OK]なのですが、大量(今回は100件以上)に処理をした場合、削除実行(Selection.Delete Shift:=xlUp)にてエラー[1004]が返され処理化中断してしまいます。
少量を数回に分けて実行すると都度対象行番号を検索しなくてはならず、処理負荷が大きいのです。
下記とは別の方法がありましたら、アドバイス願います。
宜しくお願い致します。


Private Sub CommandButton2_Click()
  Dim strDelRowNo(200)  As String
  Dim strDelRow      As String
  Dim intLastRow     As Integer
  Dim intI01       As Integer
  Dim intJ01       As Integer
  Dim intK01       As Integer
  Dim intL01       As Integer

  Application.ExecuteExcel4Macro "echo(False)"

  intLastRow = Range("$B$65536").End(xlUp).Row

  intJ01 = 0
  For intI01 = 4 To intLastRow
    If Cells(intI01, 1) = "#" Then
      intJ01 = intJ01 + 1
      strDelRowNo(intJ01) = intI01
    End If
  Next

  If strDelRowNo(1) = "" Then
    GoTo EndStep
  End If

  strDelRow = strDelRowNo(1) & ":" & strDelRowNo(1)
  For intK01 = 2 To 200
    If strDelRowNo(intK01) <> "" Then
      strDelRow = strDelRow & "," & strDelRowNo(intK01) _
           & ":" & strDelRowNo(intK01)
    Else
      Exit For
    End If
  Next

  '************
  '** 削除 **
  '************
  Range(strDelRow).Select
  Selection.Delete Shift:=xlUp
  If Err Then
    MsgBox "エラー番号 = " & Err.Number
  End If

  〜〜〜〜〜 以降は省略 〜〜〜〜〜

0 hits

【46935】[行]の一括削除方法 ボビー 07/2/22(木) 14:13 質問
【46936】Re:[行]の一括削除方法 りん 07/2/22(木) 15:56 回答
【46939】Re:[行]の一括削除方法 ボビー 07/2/22(木) 16:28 お礼

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