правильные макросы по сортировке

Программирование на Visual Basic for Applications
grim
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 25.07.2005 (Пн) 9:33

правильные макросы по сортировке

Сообщение grim » 28.10.2005 (Пт) 9:33

допустим есть у нас много много строк (десятки тысяч) и надо нам их сортировать по хитрому способу или разбить какието стринговые ячейки на несколь ну и тд.
Эксперементально проверено что если в цикле постоянно переключаться между листами использая технлогию Range(..).select , tmp= ActiveCell.copy, Sheet().Select, Range(..).select; ActiveCell.Value=tmp или не дай бог еще методы copy и paste то все работает НЕРЕАЛЬНО долго
вопрос
как все оптимизировать - как задавать ячейкам значения сразу без многочисленных селектов

вопрос ламерский но уж какой есть

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 28.10.2005 (Пт) 10:42

для одиночных ячеек не используй Select используй
Код: Выделить всё
tmp=Range(..) и Sheet(..).Range(..)=tmp или Sheet(..).cells(r,c)=cells(r,c)

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 28.10.2005 (Пт) 11:15

Забудь вообще про Select и ActiveCell :)

Даже копировать можно без них - Range(...).Copy -> Range(...).PasteSpecial. Но лучше (если нужно копировать только значения) вообще обойтись без Copy, что-нибудь типа:

Worksheets("траляля").Range("A1").value=Worksheets(2).Cells(10,25).Value
Быть... или не быть. Вот. В чём вопрос?

grim
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 25.07.2005 (Пн) 9:33

Сообщение grim » 28.10.2005 (Пт) 11:27

спасибо большое


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 79

    TopList