電子書籍の厳選無料作品が豊富!

集計ボタンで集計表のセル(Z列)に「0」の入ってる行を削除するコードを使ってます。
-------------------------------------------
Private Sub 集計_Click()
Dim i As Long
For i = 714 To 8 Step -1 ’総行数
If Cells(i, 25).Value = 0 Then ’Y列(数量)
Rows(i).Delete
End If
Next i
End Sub
-------------------------------------------
行数が300位、上記は700位と2パターンありますが抽出する時間がかかります。(30秒以上)
これはPCのスペック等にも関係あるのでしょうか?
それとももう少し早く作動するコードはあるのでしょうか?ご教授願います。
よろしくお願い致します。

A 回答 (1件)

こんにちは!



質問文は
>セル(Z列)に「0」の入ってる行・・・
となっていますが、「Y列」ですよね。

一例です。

Sub Sample1()
 Dim i As Long
 Dim myRng As Range
  For i = 8 To Cells(Rows.Count, "Y").End(xlUp).Row
   If Cells(i, "Y") = 0 Then
    If myRng Is Nothing Then
     Set myRng = Cells(i, "Y")
    Else
     Set myRng = Union(myRng, Cells(i, "Y"))
    End If
   End If
  Next i
   If Not myRng Is Nothing Then
    myRng.EntireRow.Delete
   End If
    MsgBox "完了"
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

tomo04さん
ご回答、ありがとうございました。
>「Y列」ですよね。
失礼しました。Y列でした。

早速、実行してみましたが劇的な速さで解決致しました。
これだと行数の書換も必要ないですね。

本当にありがとうございました!

お礼日時:2020/04/11 17:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!