Ошибка выполнения 438 в Excel при использовании функции сортировки - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь написать код, который удалит дубликаты из моего списка.

Он хорошо работал на моем Mac, но когда я попытался запустить его на Windows, я получил ошибку времени выполнения 438:

объект не поддерживает это свойство или метод.

Что пошло не так?

Range("E2:E150").Select
 ActiveWorkbook.Worksheets("NOS").Sort.SortFields.Clear
 ActiveWorkbook.Worksheets("NOS").Sort.SortFields.Add2 Key:=Range("E2"), _
    SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
 With ActiveWorkbook.Worksheets("NOS").Sort
    .SetRange Range("E2:G150")
    .Header = xlNo
    .MatchCase = False
    .Orientation = xlTopToBottom
    .Apply
 End With
Range("E1").Select

End Sub

1 Ответ

0 голосов
/ 05 февраля 2019

Проблема заключается в том, что вы, вероятно, используете версию Excel, выпущенную до 2016 года. Метод .SortFields.Add2 был введен в 2016 году, если ваш Excel старше, вы должны использовать старую .SortFields.Addметод (в котором отсутствует возможность использования параметра SubField).

Вам может пригодиться чтение Как избежать использования Select в Excel VBA , ваши операторы .Select довольно бесполезныи не нужно.

With ActiveWorkbook.Worksheets("NOS").Sort
    .SortFields.Clear
    .SortFields.Add Key:=Range("E2"), _
                    SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    .SetRange Range("E2:G150")
    .Header = xlNo
    .MatchCase = False
    .Orientation = xlTopToBottom
    .Apply
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...