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

VBA为表格应用筛选时Excel无报错崩溃问题求助

进阶待办清单宏崩溃问题求助

我有一个用作进阶待办清单的表格:
进阶待办清单表格

我录制了一段宏,目标是:

  • 将F列的灰色单元格(活跃任务)排至顶部
  • 隐藏E列标记为“Complete”的任务

代码如下:

Sub Sort()

    ActiveSheet.ListObjects("Table4").Range.AutoFilter Field:=4, Criteria1:= _
        Array("Active", "On Hold", "="), Operator:=xlFilterValues
    ActiveWorkbook.Worksheets("My Tasks").ListObjects("Table4").Sort.SortFields. _
        Clear
    With ActiveWorkbook.Worksheets("My Tasks").ListObjects("Table4").Sort. _
        SortFields.Add(Range("Table4[[#All],[Hold Reason]]"), xlSortOnCellColor, _
        xlAscending, , xlSortNormal)
        .SortOnValue.Color = RGB(255, 255, 255)
        .SortOnValue.PatternColor = RGB(208, 206, 206)
        .SortOnValue.Pattern = 7
    End With

    With ActiveWorkbook.Worksheets("My Tasks").ListObjects("Table4").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

End Sub

运行这段代码时Excel无报错直接崩溃,我尝试将代码拆分为三个独立宏:

Sub SortAndFilter()

    Sort
    Filter
    
End Sub

Sub Sort()

    ActiveSheet.ListObjects("Table4").Range.AutoFilter Field:=4, Criteria1:= _
        Array("Active", "On Hold", "="), Operator:=xlFilterValues
    ActiveWorkbook.Worksheets("My Tasks").ListObjects("Table4").Sort.SortFields. _
        Clear
    With ActiveWorkbook.Worksheets("My Tasks").ListObjects("Table4").Sort. _
        SortFields.Add(Range("Table4[[#All],[Hold Reason]]"), xlSortOnCellColor, _
        xlAscending, , xlSortNormal)
        .SortOnValue.Color = RGB(255, 255, 255)
        .SortOnValue.PatternColor = RGB(208, 206, 206)
        .SortOnValue.Pattern = 7
    End With

End Sub

Sub Filter()

    With ActiveWorkbook.Worksheets("My Tasks").ListObjects("Table4").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

End Sub

但崩溃问题依然存在。用VBA“逐步执行”调试时,排序部分可正常运行,一旦执行到Ln27的.Apply语句就会崩溃。推测问题出在.Apply之前的代码逻辑中,恳请帮忙排查!

另外,想请教是否有其他方法可通过单个按钮(或绑定到形状的宏)实现表格的排序与筛选?

感谢!:)


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:10:33