#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. Проблема в том, что сначала я запускаю расширенный фильтр, чтобы сузить результаты, а затем мне нужно запустить другой фильтр для результатов, чтобы упорядочить их от наименьшего к наибольшему, поэтому я не могу заранее фильтровать по цене.