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

时间:2016-07-18 14:51:53

标签: excel vba excel-vba

目前收到以下错误:

  

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

基于以下代码:

'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

非常感谢任何帮助。 谢谢!

3 个答案:

答案 0 :(得分:1)

愚蠢的错误,但我将此作为解决方案发布,因为它可能会影响其他人。

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

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

答案 1 :(得分:0)

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

答案 2 :(得分: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.

希望我帮助过。