You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何加速移除Excel所有工作表的筛选器?解决运行卡顿冻结问题

移除Excel所有工作表筛选器的VBA代码优化

我在处理Excel文件时,需要用VBA移除所有工作表的筛选器,但初始代码执行耗时很长,还会导致Excel冻结。

初始代码

Sub Auto_Open()
    Dim xWs As Worksheet
    For Each Wks In ThisWorkbook.Worksheets
    On Error Resume Next
    If Wks.AutoFilterMode Then
        Wks.AutoFilterMode = False
    End If
    Next Wks
End Sub

优化后的代码

通过添加手动计算相关语句,代码执行速度得到了明显提升:

Sub Auto_Open()
    Application.Calculation = xlManual '添加此语句大幅提升速度
    Dim xWs As Worksheet
    For Each Wks In ThisWorkbook.Worksheets
    On Error Resume Next
    If Wks.AutoFilterMode Then
        Wks.AutoFilterMode = False
    End If
    Next Wks
    Application.Calculation = xlAutomatic
End Sub

优化说明

Excel默认的自动计算模式会在操作工作表时触发公式重新计算,当工作表数量多、数据量大时,这会极大拖慢代码执行速度。将计算模式临时改为手动,就能避免不必要的计算开销,完成筛选器移除后再恢复自动计算,不会影响后续的正常使用。

内容的提问来源于stack exchange,提问作者BlankerHans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 02:27:27