直到循环执行缓慢-偏移和选择的替代方法吗?

时间:2019-02-07 10:54:18

标签: excel vba

代码正在遍历相当大的数据(1000行乘20列的列),并删除单元格中没有错误但当前需要20分钟才能执行的行。 寻找一种方法来消除偏移量并在代码中进行选择,从而加快该过程。

我曾尝试在代码前后关闭/打开自动计算功能,但这并没有明显影响运行时间。屏幕更新已关闭。

Range("A6").Select
Do Until IsEmpty(ActiveCell)
    If IsError(ActiveCell) Then
        ActiveCell.Offset(1, 0).Select
    Else
        ActiveCell.EntireRow.Delete
    End If
Loop

保留行,其中范围A中的单元格为N / A(IsError)。 按预期运行,但需要花费整整20分钟的时间。

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

SpecialCells可以快速查找所有返回布尔值,数字或文本的公式,同时排除错误。

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END;
END CASE;
END' at line 8

答案 1 :(得分:0)

i=6
With ActiveSheet
     Do Until IsEmpty(.cells(i,1))
        If IsError(.cells(i,1)) Then
             i=i+1
         Else
            .Row(i).Delete
         End If
    Loop
End with