Ошибка во время выполнения - сбой метода «Применить» объекта «Сортировка»

excel vba excel-vba

1459 просмотра

3 ответа

414 Репутация автора

В настоящее время получена следующая ошибка:

Ошибка во время выполнения - сбой метода «Применить» объекта «Сортировка»

На основе кода ниже:

'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

Будем очень благодарны любой помощи. Спасибо!

Автор: jonplaca Источник Размещён: 18.07.2016 02:51

Ответы (3)


1 плюс

414 Репутация автора

Глупая ошибка, но я выкладываю это как решение, поскольку оно может повлиять на других в будущем.

Код, который я разместил, был достаточен для запуска, ошибка была связана с тем, что у меня были параметры Excel> Формула> Расчет рабочей книги "РУЧНОЙ"

Когда я изменил Расчет рабочей книги на «Автоматический», проблема с сортировкой была исправлена.

Автор: jonplaca Размещён: 18.07.2016 03:06

0 плюса

1 Репутация автора

Скрытые строки на сортируемом листе также вызовут эту ошибку.

Автор: Karl Размещён: 02.09.2016 04:37

0 плюса

1 Репутация автора

Это решение не относится к вашей конкретной проблеме, но я публикую его здесь, чтобы кто-нибудь нашел эту ошибку.

Ссылка на элемент Sort под объектом ListObject.AutoFilter также вызовет эту ошибку. Вот мой код:

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

Я исправил свою проблему, вместо этого ссылаясь на член Sort непосредственно из объекта ListObject:

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

Надеюсь, я помог.

Автор: Zeke Размещён: 02.03.2018 01:14
32x32