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
相关产品推荐
相关产品推荐

