|
ボビー さん、こんにちわ。
>以下のような[#]の付与された行の削除を一括して行うロジックを組みましたが、数件の場合は[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
計算方法が手動で、改ページを表示していないと処理が速くなります。
|
|