‘1004’: эта ссылка на сортировку недопустима. Убедитесь, что она находится в пределах данных, которые вы хотите отсортировать, и первое поле сортировки по не является одинаковым или пустым

#excel #vba

#excel #vba

Вопрос:

Я пытаюсь отсортировать диапазон для одного значения для отображения в порядке от наименьшего к наибольшему, но по какой-то причине получаю указанную выше ошибку в «.Применить». Кто-нибудь знает, как это исправить? это для чего-то, что должно быть сделано в ближайшее время, поэтому оперативная помощь станет настоящим спасением!

 Selection.AutoFilter
ActiveWorkbook.Worksheets("Filter ClientID").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Filter ClientID").AutoFilter.Sort.SortFields.Add2 _
    Key:=Range("O9:O50"), SortOn:=xlSortOnValues, Order:=xlAscending, _
    DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Filter ClientID").AutoFilter.Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
  

Комментарии:

1. Вы не можете «сортировать диапазон по одному значению». Вы можете отфильтровать диапазон для одного значения. Если диапазон был ранее отсортирован, часть, отображаемая фильтром, также будет отсортирована. Соответственно, сначала отсортируйте свои данные, а затем отфильтруйте их.

2. Если лист, который вы сортируете, не активен, тогда ключ будет на другом листе.

3. Проблема в том, что сначала я запускаю расширенный фильтр, чтобы сузить результаты, а затем мне нужно запустить другой фильтр для результатов, чтобы упорядочить их от наименьшего к наибольшему, поэтому я не могу заранее фильтровать по цене.