Страницы: 1
RSS
Макрос для сортировки в убывающем порядке выдает пустые ячейки сверху., Выдает пустые ячейки вверху
 
Ребята нужна помощь, делаю сортировку макросом по столбцу "К" в убывающем порядке, выдает пустые строки вверху.
Необходимо их отображать внизу, не знаю как сделать.
Плиз Хелп исправить код!!! Не могу в интернете нигде найти как сделать их снизу, везде варианты с неотображением их.


Код
Sub Sorting_201411D()
Application.ScreenUpdating = False
    With ActiveWorkbook.ActiveSheet.AutoFilter.sort
        .SortFields.Clear
        .SortFields.Add Key:=Range("K5"), SortOn:=xlSortOnValues, _
        Order:=xlDescending, DataOption:=xlSortNormal
        .Apply
    End With
End Sub
 
Заполните их значениями заведомо опускающими их вниз, отсортируйте, очистите их от ранее заданных значений.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan,
Не могу, они формулами стоят.

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

PS в примере сортировка по столбцу "H" сделал (по 2014 году)
Изменено: Riccoromeo - 13.01.2016 16:23:17
 
Riccoromeo, Ваши формулы - это ссылки на ячейки, которые лежат ВНЕ таблицы подлежащей сортировке. При таком раскладе нужно сортировать диапазон включая эти ячейки.
---
Формулу для 2014 меняем на:
=ЕСЛИ(ЕЧИСЛО($O4);$O4;"")

В модуль листа:
Код
Sub jjj()
Dim rng As Range
    If IsEmpty(ActiveCell) Then Exit Sub
    Set rng = ActiveCell.CurrentRegion.EntireRow
    With Me.Sort
        .SortFields.Clear
        .SortFields.Add Key:=rng.Resize(, 1).Offset(, 7), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange rng
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
        
        Set rng = rng.Resize(WorksheetFunction.Count(rng.Resize(, 1).Offset(, 7)))
        .SortFields.Clear
        .SortFields.Add Key:=rng.Resize(, 1).Offset(, 7), _
            SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
        .SetRange rng
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
Изменено: JayBhagavan - 13.01.2016 16:58:04

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
подскажите, как написать макрос который будет добавлять в таблицу количество строк, равное номеру в отдельной ячейке. И в этих строках должны копироваться формулы из заданнной строки.
 
ruch, каким боком Ваш вопрос относится к данной теме? Вам срочно в правила, а пока цитата из них:
Цитата
2.6. Один вопрос - одна тема. Не следует в открываемой теме обозначать и задавать сразу несколько вопросов.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
Страницы: 1
Читают тему
Наверх