Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Сортировка в двумерном массиве VBA Excel, Написал тут небольшую процедурку, может кому будет полезна
 
Цитата
AAF написал:
Внесу изменения в течение недели.
Это здорово!
Сейчас использую SortAll с настройками по умолчанию, но
пришлось добавить отдельный перевертыш, т.к. требуется обратная сортировка.
И все равно быстрей, чем SortBin с собственной обратной сортировкой.
(Гоняю массивы по 750 000 строк примерно 1,2-1,5 сек.)

PS В качестве входного и выходного массива использую один и тот же: arr = SortAll(arr, 1)
Пробовал переделать под передачу массива по ссылке: SortAll arr, 1
чтоб исключить промежуточные копирования,
но почему-то получалось медленнее...
возможно из-за того, что в этом случае VBA воспринимает массив arr, как переменную Variant?...
Изменено: SSL13 - 19.08.2018 18:09:09
Сортировка в двумерном массиве VBA Excel, Написал тут небольшую процедурку, может кому будет полезна
 
Цитата
AAF написал:
Если есть вопросы или ...
Спасибо за код, круто!
Пытаюсь протестировать...

1. Видимо ошибка в описании:
Код
Sub SortStr_Sample()
'...
SortBin ДвумерныйМассив, 1, МассивИндексов, 1, 1, 10, 100
'...
SortBin ДвумерныйМассив, 2, МассивИндексов, -1
Наверно подразумевался вызов SortStr ?

2. Если "Направл. сортировки" в тестовой таблице или в вызывающем модуле задать -1,
Код
Function SortAll
'... в последнем цикле:
  For i = LBound(a0) To UBound(a0): aResult(i, j) = a(a0(i), j): Next
выдает ошибку выхода за пределы диапазона.

PS Отладка показала, что массив a0 формируется неправильно - некоторые значения остаются нулевыми...

PPS Можете исправить? Или подсказать - что нужно изменить...
Изменено: SSL13 - 17.08.2018 19:07:05
Страницы: 1
Наверх