Всё работает, но диапазон постоянно меняется. Да к тому же сортировка по убыванию и если взять диапазон больше данных, то в верхние строки попадают пустые ячейки. Проблема в следующем: При попытке в макросе заменить адрес "V2:W95" на строковую переменную или полностью "Range("V2:W95")" на переменную типа Range выдает ошибку:
"Недопустимая ссылка для сортировки. Убедитесь, что она указывает на данные которые нужно отсортировать и что в первом поле "Сортировать по" указано допустимое значение."
При всем при этом выделяется именно необходимый мне диапазон, а дебагер выделяет строку ".Apply"
Заранее благодарен за помощь! [moder]Оформляйте коды тегами (кнопка #). Исправила на первый раз[/moder]
Доброго времени суток. Прошу помочь с сортировкой диапазона. Записал макросом сортировку диапазона:
Всё работает, но диапазон постоянно меняется. Да к тому же сортировка по убыванию и если взять диапазон больше данных, то в верхние строки попадают пустые ячейки. Проблема в следующем: При попытке в макросе заменить адрес "V2:W95" на строковую переменную или полностью "Range("V2:W95")" на переменную типа Range выдает ошибку:
"Недопустимая ссылка для сортировки. Убедитесь, что она указывает на данные которые нужно отсортировать и что в первом поле "Сортировать по" указано допустимое значение."
При всем при этом выделяется именно необходимый мне диапазон, а дебагер выделяет строку ".Apply"
Заранее благодарен за помощь! [moder]Оформляйте коды тегами (кнопка #). Исправила на первый раз[/moder]Darck
Сообщение отредактировал Pelena - Суббота, 21.11.2015, 10:50
Sub мяу() Dim r as Range With ActiveWorkbook.Worksheets("Список загрузки") Set r = .Range("V2:W95") With .Sort .SortFields.Clear .SortFields.Add Key:=r(2) _ , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _ xlSortNormal .SetRange r .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End With End Sub
[/vba]
[vba]
Код
Sub мяу() Dim r as Range With ActiveWorkbook.Worksheets("Список загрузки") Set r = .Range("V2:W95") With .Sort .SortFields.Clear .SortFields.Add Key:=r(2) _ , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _ xlSortNormal .SetRange r .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End With End Sub
RAN, спасибо! Работает! А можешь пояснить что сделал? Насколько я понял в "Key" устанавливаем диапазон для сортировки. А тут получается передаем индекс строки: r(2). В общем я нифига не понял ... что в принципе не удивительно для моих скромных познаний...
RAN, спасибо! Работает! А можешь пояснить что сделал? Насколько я понял в "Key" устанавливаем диапазон для сортировки. А тут получается передаем индекс строки: r(2). В общем я нифига не понял ... что в принципе не удивительно для моих скромных познаний...Darck