运行时错误 - 对象'排序'的方法'应用'失败

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

目前收到以下错误:

运行时错误 - 对象'排序'的方法'应用'失败

基于以下代码:

'In the MTD Crystal Reports workbook that has the new data, sort the data
Range("A2:AF65536").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2:A65536" _
    ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortTextAsNumbers

With ActiveWorkbook.Worksheets("Sheet1").Sort
    .SetRange Range("A2:AF65536")
    .Header = xlGuess
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
  • 调试器带我到“.Apply”
  • 我已经确认排序行/列属于.SetRange

任何帮助将不胜感激。谢谢!

excel vba excel-vba
3个回答
1
投票

愚蠢的错误,但我发布这个解决方案,因为它可能影响其他人在未来。

我发布的代码足以运行,错误是由于我的Excel选项>公式>工作簿计算“手动”

当我将工作簿计算更改为“自动”时,排序问题已得到纠正。


0
投票

在要排序的工作表上隐藏行也会导致此错误。


0
投票

此解决方案不适用于您的特定问题,但我在此处发布它是为了搜索此错误的任何人的利益。

在ListObject.AutoFilter对象下引用Sort成员也会导致此错误。这是我的代码:

Selection.ListObject.AutoFilter.Sort.SortFields.Add 'etc.
...
Selection.ListObject.AutoFilter.Sort.Header = xlYes 'etc.
...
Selection.ListObject.AutoFilter.Sort.Apply 'error raised here.

我通过直接从ListObject对象引用Sort成员来修复我的问题:

Selection.ListObject.Sort.Sortfields.Add 'etc.
...
Selection.ListObject.Sort.Header = xlYes 'etc.
...
Selection.ListObject.Sort.Apply 'method executed successfully.

希望我帮忙。

© www.soinside.com 2019 - 2024. All rights reserved.