Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / а как сортировать массивы в VBA ? / 25 сообщений из 47, страница 1 из 2
09.01.2009, 11:35:52
    #35748414
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
вот собственно и весь вопрос..

ps наиболее быстро хочется..
...
Рейтинг: 0 / 0
09.01.2009, 14:28:50
    #35748684
SQL_Lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
_slan_вот собственно и весь вопрос..

ps наиболее быстро хочется..

Так - же, как и в любом другом языке.
Алгоритм сортировки и скорость оного зависят от того, что сортируем.
Если сортировать массив из 10 чисел - тут и пузырьком пойдет.
Если массив большой, но диапазон не велик - сортировка подсчетом.
И так далее.
Основные алгоритмы именно в VB реализации - есть в книге Гетса\Джилберта - Программирование VB\VBA - как то так, точно название не помню.
Тут на сайте, в книгах, есть.
...
Рейтинг: 0 / 0
09.01.2009, 14:40:14
    #35748700
A-Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
Кинуть массив на лист и там отсортировать функцией экселя. Затем закинуть отсортированный диапазон обратно в массив.
...
Рейтинг: 0 / 0
09.01.2009, 14:46:13
    #35748708
SQL_Lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
A-NikКинуть массив на лист и там отсортировать функцией экселя. Затем закинуть отсортированный диапазон обратно в массив.

Как насчет массива из 500 000 элементов, например?
...
Рейтинг: 0 / 0
09.01.2009, 14:48:13
    #35748714
f
f
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
В СУБД решается за секунду.
...
Рейтинг: 0 / 0
09.01.2009, 14:49:44
    #35748717
A-Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
SQL_LamerA-NikКинуть массив на лист и там отсортировать функцией экселя. Затем закинуть отсортированный диапазон обратно в массив.
Как насчет массива из 500 000 элементов, например?
использовать Офис 2007
...
Рейтинг: 0 / 0
09.01.2009, 14:55:46
    #35748723
Restavraciya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
...
Рейтинг: 0 / 0
09.01.2009, 20:48:49
    #35749204
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
...
Рейтинг: 0 / 0
09.01.2009, 20:51:18
    #35749207
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
SQL_Lamer,
самому писать - эт понятно тогда, но эт же велосипед.. неужели ничего встроенного/готового нет?
мож с dll..
...
Рейтинг: 0 / 0
09.01.2009, 21:12:27
    #35749231
SQL_Lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
_slan_SQL_Lamer,
самому писать - эт понятно тогда, но эт же велосипед.. неужели ничего встроенного/готового нет?
мож с dll..

Прикольно :)
Пошел на сайт мелкософт, что там про сортировки в VBA говорят, а там ту - же книжку советуют, что и я :))
...
Рейтинг: 0 / 0
09.01.2009, 21:32:53
    #35749241
SQL_Lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
A-NikSQL_LamerA-NikКинуть массив на лист и там отсортировать функцией экселя. Затем закинуть отсортированный диапазон обратно в массив.
Как насчет массива из 500 000 элементов, например?
использовать Офис 2007


А если это не excel, а word, или outlook? :))
...
Рейтинг: 0 / 0
10.01.2009, 03:43:19
    #35749434
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
Самый быстрый способ (применительно к большим наборам данных в Офисе) - выгрузить данные в файл, отсортировать его с помощью сторонней утилиты (лучше всего писаной на си или асме) и закачать обратно...
...
Рейтинг: 0 / 0
10.01.2009, 11:58:03
    #35749610
A-Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
SQL_LamerA-NikSQL_LamerA-NikКинуть массив на лист и там отсортировать функцией экселя. Затем закинуть отсортированный диапазон обратно в массив.
Как насчет массива из 500 000 элементов, например?
использовать Офис 2007

А если это не excel, а word, или outlook? :))Ой сомневаюсь я, что кто-либо столкнётся с задачей сортировки 500 000 записей в ворде или аутлуке
...
Рейтинг: 0 / 0
10.01.2009, 15:28:13
    #35749788
SQL_Lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
AndreTMСамый быстрый способ (применительно к большим наборам данных в Офисе) - выгрузить данные в файл, отсортировать его с помощью сторонней утилиты (лучше всего писаной на си или асме) и закачать обратно...

Выгружать куда - то данные, потом обратно... Только, чтоб отсортировать?
Что за чепуха?
Есть же в VBA возможность написать любую сортировку.
VBA - вполне функцинальный инструмент для таких вещей.
Если уж хочется использовать сторонние инструменты - можете reference на dll свою сделать.
Только dll ваша должна иметь строгое имя и должна быть зарегана в гасе.
...
Рейтинг: 0 / 0
10.01.2009, 17:42:07
    #35749907
f
f
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
Удивляюсь, для чего люди СУБД придумывали?
...
Рейтинг: 0 / 0
10.01.2009, 22:08:55
    #35750110
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
F,
ну вот вы субд субд.. т.е. вы мне предлагаете к оффису еще и СУБД прикупить?

да у меня и базы-то нет..
...
Рейтинг: 0 / 0
11.01.2009, 05:49:17
    #35750324
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
Найдите в википедии алгоритм сортировки, реализуйте его на VBA и пользуйтесь им .
...
Рейтинг: 0 / 0
11.01.2009, 10:31:03
    #35750462
f
f
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
_slan_F,
ну вот вы субд субд.. т.е. вы мне предлагаете к оффису еще и СУБД прикупить?

да у меня и базы-то нет..

Надо задачи решать правильными средствами. СУБД есть бесплатные. И что-то мне подсказывает, что если у вас есть оффис, то там есть и Access.
...
Рейтинг: 0 / 0
11.01.2009, 13:40:45
    #35750741
а как сортировать массивы в VBA ?
...
Рейтинг: 0 / 0
11.01.2009, 13:41:11
    #35750743
Лучше
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
...
Рейтинг: 0 / 0
11.01.2009, 15:32:24
    #35750965
а как сортировать массивы в VBA ?
тынц
...
Рейтинг: 0 / 0
11.01.2009, 19:10:16
    #35751348
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
big-duke,
уже нашли.. немножко доработали.
http://www.planetaexcel.ru/forum.php?thread_id=7702
...
Рейтинг: 0 / 0
11.01.2009, 19:15:47
    #35751356
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
_slan_, вариант с рекордсетом я тоже нашел, но заставить работать пока не смог..
...
Рейтинг: 0 / 0
11.01.2009, 19:18:29
    #35751360
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
F,
фигню вы говорите..

зачем мне переходить в другую среду.. ни вообще, ни в частности не понимаю.

больше с вами не разговариваю
...
Рейтинг: 0 / 0
12.01.2009, 07:35:55
    #35751732
ZVI
ZVI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а как сортировать массивы в VBA ?
Инфо для советчиков обрабатывать Excel-данные с помощью СУДБ, в частности ADO :

1. Обработка открытых Excel-книг приводит к утечкам памяти, мною это проверено, а кто не верит читайте здесь:
BUG Memory leak occurs when you query an open Excel worksheet by using ActiveX Data Objects
Такая проблема относится и к оекомендованной здесь ссылке на
Сортировка двухмерного массива с помощью ADO рекордсета
Сохранять книгу для того, чтобы обработать, а затем открывать? Это - тормоз :)

2. Если в столбце(колонке) Excel-книги данные смешанных типов, то импортируются только данные одного их этих типов, а данные остальных типов игнорируются. Обычно определение типа данных производится по первым 8-ми строкам колонки (зависит от параметра в реестре, может быть от 1 до 16 или по всей колонке, но импортируются все равно данные только одного типа)
Другими словами, совет обработать с помощью СУБД - тупиковый. Или предложите импортировать в MEMO-поля Access-a, там обрабатывать и возвращать в Excel? Ну, это совет для врагов разве что :)
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / а как сортировать массивы в VBA ? / 25 сообщений из 47, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]