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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как отсортировать по дате в Excel, в VB 
:(
    Опции темы
Гость_Артём
Дата 26.9.2005, 18:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











несколько столбцов. третий из нах - дата в формате ДД.ММ.ГГГГ = текст
как отсортировать все строки по этому столбцу?
  Вверх
Yanis
Дата 26.9.2005, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

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



Запиши макрос и посмотри. Будет, что то типа того:
Код

    Columns("С:С").Select
    Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

Первая строка выделяет весь столбец (в данном случае "С"). А потом собственно и идёт метод сортировки выделеного столбца.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Guest
Дата 27.9.2005, 17:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











как записать макрос такой?? даже если сам сортировать будешь, в макросе будут только "Вырезать" и "Вставить" и ничего такого.
Цитата(Yanis @ 26.9.2005, 20:31)
Первая строка выделяет весь столбец (в данном случае "С"). А потом собственно и идёт метод сортировки выделеного столбца.

Мне надо отсортировать не только этот столбец, а все, используя как ключ сортироки этот столбец.
  Вверх
Guest
Дата 27.9.2005, 17:43 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











самое главное, что дата имеет формат ДД.ММ.ГГГГ
  Вверх
Yanis
Дата 27.9.2005, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

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



Цитата(Guest @ 27.9.2005, 17:42)
как записать макрос такой?? даже если сам сортировать будешь, в макросе будут только "Вырезать" и "Вставить" и ничего такого.

Я имел ввиду не такой способ.

Как записать макрос
В главном меню Excel в "Вид->Панели инструментов" выбираем для отображения панель "Visual Basic". В появившейся панели жмём кнопку "Записать макрос". Теперь делаем, то что делаем обычно, а Excel интерпритирует это в скриптовый язык.

Как сортировать столбец
Выделяем столб(ец/цы), строки котор(ого/ых) надо отсортировать. В главном меню выбираем "Данные->Сортировка". Далее в появившемся окне "Сортировка диапозона" указываем параметры сортировки.

P.S. Надеюсь я правильно всё понял smile


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Staruha
Дата 28.9.2005, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

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



Да.И обязательно выделяй всю таблицу.Иначе все данные перепутаются.


--------------------
Возмездие настигнет
PM MAIL   Вверх
Guest
Дата 29.9.2005, 16:45 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Yanis @ 27.9.2005, 19:55)
Цитата(Guest @ 27.9.2005, 17:42)
как записать макрос такой?? даже если сам сортировать будешь, в макросе будут только "Вырезать" и "Вставить" и ничего такого.

Я имел ввиду не такой способ.

Как записать макрос
В главном меню Excel в "Вид->Панели инструментов" выбираем для отображения панель "Visual Basic". В появившейся панели жмём кнопку "Записать макрос". Теперь делаем, то что делаем обычно, а Excel интерпритирует это в скриптовый язык.

Как сортировать столбец
Выделяем столб(ец/цы), строки котор(ого/ых) надо отсортировать. В главном меню выбираем "Данные->Сортировка". Далее в появившемся окне "Сортировка диапозона" указываем параметры сортировки.

P.S. Надеюсь я правильно всё понял smile

Написал, как последнему ламеру smile
Я знаю, как записывается мокрос, я не знаю, как мне сделать таку сортироку, даже вручную
  Вверх
Guest
Дата 29.9.2005, 17:24 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код

06.05.2005
06.05.2005
06.05.2005
06.05.2005
07.05.2005
08.05.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
08.06.2005
10.05.2005
10.05.2005
11.05.2005
11.05.2005
11.05.2005
11.05.2005
11.05.2005
11.05.2005

Это фрагмент сортировки, при помощи твоего кода.
Как мы видим, по месяцу он уже не сортирует...
  Вверх
Staruha
Дата 29.9.2005, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

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



Вот код ,который раскидает столбец с датой(столбец А) по трем столбцам(начиная со второго столбца).То что в скобках замени на нужное.Потом сортируй Сначала по году потом по месяцу и дате
Код

Private Sub CommandButton1_Click()
Dim M
Dim MArray As String
Dim i As Integer
Dim r As Integer
 For r = 1 To 1000'идем по строкам
MArray = Range("A" & r).Value
M = Split(MArray, ".")
 For i = 0 To UBound(M) 
 Cells(r, 2 + i) = M(i) 'раскидываем по столбцам
                       
 Next i
 Next r
End Sub



--------------------
Возмездие настигнет
PM MAIL   Вверх
Ser9a
Дата 21.10.2005, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



сортировку можно сделать следующим образом: выделяешь все а затем в пункте данные выбрать сортировку, далее выбрать по какому полю. перед этим всем включи на запись макрос.

PM MAIL ICQ   Вверх
Akina
Дата 21.10.2005, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20580
Регистрация: 8.4.2004
Где: Зеленоград

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



Вводишь еще один столбец (скажем он получится F), в нем формула:

Код

Fx = Mid$(Cx,7,4) & Mid$(Cx,4,2) & Left$(Cx,2)


В результате получишь еще один столбец с датой в формате YYYYMMDD. И сортируй по нему как по тексту.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
AsIs
Дата 28.10.2005, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Насколько я понимаю, проблема в том, что введенные данные Excel не воспринимает, как даты. Поэтому и сортировка не работает. И последние советы направлены на то, чтобы это обойти.
Еще идея: а просто установить правильный формат даты для этих ячеек не пробовал? Если не совпадают региональные установки, то это тоже решаемо...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

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

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

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



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


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

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


 




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


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

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