Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2012, 23:28   #1
Randy.Mandy
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 45
По умолчанию сортировка по возрастанию и убывавнию

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

Файл приложил.
Вложения
Тип файла: zip Книга1.zip (363 байт, 21 просмотров)
Randy.Mandy вне форума Ответить с цитированием
Старый 21.02.2012, 00:00   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Пробуйте
Код:
Sub bb()
Dim c As Range
Set c = Rows(1).Find("Date", , xlValues, xlWhole)
If c Is Nothing Then
    MsgBox "Ячейка Date не найдена", vbCritical
Else
    c.Sort c, xlAscending, header:=xlYes
End If
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 21.02.2012, 00:12   #3
Randy.Mandy
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 45
По умолчанию

Спасибо!
а я вот так переделал записанный макрос:


Код:
Sheets("Лист1").Select
Cells(r_end + 1, 1).FormulaR1C1 = "=MATCH(" & Chr(34) & "Date" & Chr(34) & ",R1,0)"
date = Cells(row_end + 1, 1).Value
r_end = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
Range(Cells(2, data), Cells(r_end, data)).Select
    ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Cells(2, data), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Лист1").Sort
        .SetRange Cells
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
Но Ваш вариант куда лучше!!
Randy.Mandy вне форума Ответить с цитированием
Старый 21.02.2012, 00:21   #4
Randy.Mandy
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 45
По умолчанию

Казанский, *простите, не знаю, как Вас зовут.*

Скажите, пожалуйста, на всякий случай, какой участок кода заменить на то, чтобы сортировка осуществлялась по убыванию?
Randy.Mandy вне форума Ответить с цитированием
Старый 21.02.2012, 01:08   #5
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Код:
c.Sort c, xlDescending, header:=xlYes
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 21.02.2012, 01:28   #6
Randy.Mandy
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 45
По умолчанию

Спасибо огромное!
Randy.Mandy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива во возрастанию. Abuhamed PHP 7 01.12.2011 23:06
Сортировка по убыванию-возрастанию Gaudi Microsoft Office Excel 4 29.09.2011 15:08
Сортировка слов по возрастанию Студент1000 Microsoft Office Word 2 26.05.2011 00:57
Сортировка строк по возрастанию westlinex Паскаль, Turbo Pascal, PascalABC.NET 1 31.01.2011 01:57
Сортировка по возрастанию в Stringgride Китти Помощь студентам 2 22.12.2009 23:42