加速 VBA 宏(现在使用 For... 和 If...)

问题描述 投票:0回答:1

我使用宏和以下代码:

 For i = 1 To IMAX - 1

    If Range("B" & IMAX - i).Value = 0 Then

    Rows(IMAX - i).Delete Shift:=xlUp

    Else

    End If

    Next i

IMAX 1500左右 屏幕更新是错误的

您对如何加速有什么建议吗?

excel vba for-loop if-statement
1个回答
0
投票
  • 对 B 列应用自动筛选,然后删除可见行
Option Explicit

Sub demo()
    Dim c As Range
    If ActiveSheet.AutoFilterMode Then
        If ActiveSheet.AutoFilter.FilterMode Then
            ActiveSheet.ShowAllData
        End If
    End If
    With Range("A1").CurrentRegion
        .AutoFilter field:=2, Criteria1:="0"
        Set c = .Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible)
        If Not c Is Nothing Then
            c.EntireRow.Delete
        End If
        .AutoFilter
    End With
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.