Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка листа EXCEL 
:(
    Опции темы
igor87
Дата 8.6.2014, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 5.2.2011

Репутация: нет
Всего: нет



Добрый день!

Необходимо сделать сортировку по двум полям: по первому сортировать по алфавиту, по второму по заданному списку.
Делаю следующее
Код

' добавляю список, в соответствии с которым нужно отсортировать
excelApp.AddCustomList(orderArray)
' получаю индекс необходимого списка
orderIndex = excelApp.GetCustomListNum(orderArray)

а вот непосредственно сортировку пробовал сделать как сразу по двум полям:
Код

sortRange.Sort(Key1:=sortRange.Range("B2"), Order1:=Microsoft.Office.Interop.Excel.XlSortOrder.xlAscending,
               Key2:=sortRange.Range("B3"), OrderCustom:=orderIndex,
               Orientation:=Microsoft.Office.Interop.Excel.XlSortOrientation.xlSortRows)

так и по очереди:
Код

sortRange.Sort(Key1:=sortRange.Range("B3"),
               OrderCustom:=orderIndex, MatchCase:=False,
               Orientation:=Microsoft.Office.Interop.Excel.XlSortOrientation.xlSortRows)

sortRange.Sort(Key1:=sortRange.Range("B2"), Order1:=Microsoft.Office.Interop.Excel.XlSortOrder.xlAscending,
               MatchCase:=False, Orientation:=Microsoft.Office.Interop.Excel.XlSortOrientation.xlSortRows)

В обоих случаях сортировка первого уровня(по B2) по алфавиту идёт нормально, а вот для второго(B3) список "не работает" ни в первом, ни во втором случае и сортировка второго уровня, как и первого, происходит по алфавиту.

Добавление списка в AddCustomList происходит нормально, проверял.
PM MAIL   Вверх
diadiavova
Дата 8.6.2014, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 1
Всего: 142



Цитата(igor87 @  8.6.2014,  19:59 Найти цитируемый пост)
и сортировка второго уровня, как и первого, происходит по алфавиту

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


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
igor87
Дата 8.6.2014, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 5.2.2011

Репутация: нет
Всего: нет



Попробовал добавить выставление формата ячеек. Формат ячейки первого уровня(B2) сортировки числовой, второго(B3) - текстовый. Сортировка по второму варианту: сначала по B3, потом по B2. В результате без изменений: по B2 всё, как и прежде, верно - сортировка от минимального до максимального значения; по B3 всё также сортировка по алфавиту вместо заданного порядка в OrderCustom.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0663 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.