powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / а как сортировать массивы в VBA ?
25 сообщений из 47, страница 1 из 2
а как сортировать массивы в VBA ?
    #35748414
_slan_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот собственно и весь вопрос..

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

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

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

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

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


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

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

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

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

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

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

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

больше с вами не разговариваю
...
Рейтинг: 0 / 0
а как сортировать массивы в VBA ?
    #35751732
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Инфо для советчиков обрабатывать 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
25 сообщений из 47, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / а как сортировать массивы в VBA ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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