Пытаюсь разобраться в Вашем коде
На сколько я понял - сначала создается массив с комбинациями, потом идет просчет расстояний.
Я добавил в код вывод хода выполнения в статусбар.
Получается что дольше всего создается этот самый массив комбинаций. Просчет расстояний в десятки раз быстрее - особенно если выбирать 11-12 городов.
У Вас в коде есть строка перескока по строкам общего массива :[vba]Код
"i = i + f(n - 1 - j) - 1"
[/vba]
Может можно обойтись без массива комбинаций и как-то создавать временный массив на основании текущего положения "I"(формулой)?
Пока не нашел решения.
Кроме того не будет грузится комп. У меня например на компе хватает оперативки для массива в 49 000 000стр., а на виртуалбоксе - не хватает.