Excel VBA質問箱 IV

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

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


34999 / 76732 ←次へ | 前へ→

【46936】Re:[行]の一括削除方法
回答  りん E-MAIL  - 07/2/22(木) 15:56 -

引用なし
パスワード
   ボビー さん、こんにちわ。
>以下のような[#]の付与された行の削除を一括して行うロジックを組みましたが、数件の場合は[OK]なのですが、大量(今回は100件以上)に処理をした場合、削除実行(Selection.Delete Shift:=xlUp)にてエラー[1004]が返され処理化中断してしまいます。
範囲を指定するための文字列が長すぎるのかもしれませんね。

文字列にせずにセルを直接変数に追加セットし、行全体を削除します。
データは65536行入っていないものとします。
続きがわからないので、変数の宣言を省いてあります。

Private Sub CommandButton2_Click()
  Dim r1 as Range
  Application.ScreenUpdating = False '画面更新なし
  '
  intLastRow = Range("$B$65536").End(xlUp).Row
  '65536行使っていないとして
  Set r1 = Cells(intLastRow + 1, 2) '削除しても問題ない行をセット
  '
  For intI01 = 4 To intLastRow
   If Cells(intI01, 1).Value = "#" Then
     Set r1 = Application.Union(r1, Cells(intI01, 1)) '追加セット
   End If
  Next
  '
  '************
  '** 削除 **
  '************
  r1.EntireRow.Delete
  Set r1 = Nothing
  '
  Application.ScreenUpdating = True
End Sub

計算方法が手動で、改ページを表示していないと処理が速くなります。

1 hits

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

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