Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Скорость сортировки массива (работы макроса) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скорость сортировки массива (работы макроса) (Макросы/Sub)
Скорость сортировки массива (работы макроса)
fairylive Дата: Пятница, 18.10.2019, 00:45 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 122
Репутация: 4 ±
Замечаний: 0% ±

Excel 2016
Всем привет. Дорос я до сортировок массивов тут. И на просторах интернета нашел их очень много. Даже на этом сайте в готовых решениях много всего. Какая лучше? В плане скорости? Не быстрее ли будет скопировать на лист и там отсортировать? Или вообще запустить какой-нибудь скрипт на Python и отсортировать питоном? С маленькими двумерными массивами, вопросов нет. С массивом из 100 строк макрос задумывается на пару минут. При этом массивы 100х2 или 100х3 сортируются по одному столбцу. Там где надо по двум сразу я пока сделал через создание временного листа. Если записей под 1000 то комп думает пол часа уже. Это нормально вообще? Возможно конечно дело не в сортировках вовсе... У меня из двух таблиц в excel делается одна в word. И вот в последнем не смог до конца избавиться от selection. Прежде с ним не работал. На всякий случай выкладываю макрос свой и файл с таблицами.
К сообщению приложен файл: __.xlsm (38.2 Kb) · Data.xlsb (19.0 Kb)
 
Ответить
СообщениеВсем привет. Дорос я до сортировок массивов тут. И на просторах интернета нашел их очень много. Даже на этом сайте в готовых решениях много всего. Какая лучше? В плане скорости? Не быстрее ли будет скопировать на лист и там отсортировать? Или вообще запустить какой-нибудь скрипт на Python и отсортировать питоном? С маленькими двумерными массивами, вопросов нет. С массивом из 100 строк макрос задумывается на пару минут. При этом массивы 100х2 или 100х3 сортируются по одному столбцу. Там где надо по двум сразу я пока сделал через создание временного листа. Если записей под 1000 то комп думает пол часа уже. Это нормально вообще? Возможно конечно дело не в сортировках вовсе... У меня из двух таблиц в excel делается одна в word. И вот в последнем не смог до конца избавиться от selection. Прежде с ним не работал. На всякий случай выкладываю макрос свой и файл с таблицами.

Автор - fairylive
Дата добавления - 18.10.2019 в 00:45
InExSu Дата: Суббота, 19.10.2019, 05:23 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Привет!

Если записей под 1000 то комп думает пол часа уже. Это нормально вообще?


Нет.
Лень исследовать Вашу программу.
Какую таблицу и как нужно отсортировать?


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
СообщениеПривет!

Если записей под 1000 то комп думает пол часа уже. Это нормально вообще?


Нет.
Лень исследовать Вашу программу.
Какую таблицу и как нужно отсортировать?

Автор - InExSu
Дата добавления - 19.10.2019 в 05:23
fairylive Дата: Воскресенье, 20.10.2019, 01:52 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 122
Репутация: 4 ±
Замечаний: 0% ±

Excel 2016
InExSu, Я тут помозговал ещё и поизучал пошагово код и пришёл к мысли что с сортировками проблем нет. Что на листе что в массиве всё делается быстро. Долго строится таблица в ворде. Ну там кажется тоже уже понял в чём беда. Я пытаюсь строить таблицу построчно (с вордом плохо знаком). А надо видимо получить таблицу в виде массива и построить её одним разом. Как раз те самые selection отработают не тысячи раз в цикле а буквально раз или около того.
Плюс проходка по массивам в циклах в поисках нужной записи происходит всё время с начала. На малых объёмах это наверно не важно. А на больших получается по много раз просматриваются те данные которые точно не нужны, ведь их уже использовали ранее. Тут пока думаю как что изобразить. По идее оба массива из которых строится таблица в ворде уже отсортированы нужным образом. Буду бороться дальше в общем)) Задача не боевая. Это такое тестовое задание для собеседования на работу...

Прикрепил также задание. Может кому-то захочется попрактиковаться.
К сообщению приложен файл: 6954580.txt (0.4 Kb)
 
Ответить
СообщениеInExSu, Я тут помозговал ещё и поизучал пошагово код и пришёл к мысли что с сортировками проблем нет. Что на листе что в массиве всё делается быстро. Долго строится таблица в ворде. Ну там кажется тоже уже понял в чём беда. Я пытаюсь строить таблицу построчно (с вордом плохо знаком). А надо видимо получить таблицу в виде массива и построить её одним разом. Как раз те самые selection отработают не тысячи раз в цикле а буквально раз или около того.
Плюс проходка по массивам в циклах в поисках нужной записи происходит всё время с начала. На малых объёмах это наверно не важно. А на больших получается по много раз просматриваются те данные которые точно не нужны, ведь их уже использовали ранее. Тут пока думаю как что изобразить. По идее оба массива из которых строится таблица в ворде уже отсортированы нужным образом. Буду бороться дальше в общем)) Задача не боевая. Это такое тестовое задание для собеседования на работу...

Прикрепил также задание. Может кому-то захочется попрактиковаться.

Автор - fairylive
Дата добавления - 20.10.2019 в 01:52
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скорость сортировки массива (работы макроса) (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!