Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2710
Благодарности: 1686

Профиль | Отправить PM | Цитировать


okshef, Я несколько модифицировал Ваш цикл - вынес Select из цикла -так эффективнее. Вообще-то Select я привёл как пример, мне, допустим, надо Delete,
Код: Выделить весь код
    Dim myUnion As Range
    Set myUnion = Union(Columns(3), Columns(4))
    For i = 1 To 250
        Set myUnion = Union(myUnion, Columns(4 + i))
    Next
    myUnion.Delete Shift:=xlToLeft
Я убедился, что это многократно эффективнее чем
Код: Выделить весь код
    For i = 0 To 251
        Columns(3).Delete Shift:=xlToLeft
    Next
Вообще-то сам я пытался свести решение к случаю Columns("C:E") -я не смог сопоставить номеру столбца буквенное обозначение. У меня есть надежда, что этот путь более компактен.
Например MsgBox Columns("C").Column выдаст 3. А вот с обратной операцией, что то типа
MsgBox Columns(3).??????? у меня не вышло

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 04-11-2010 в 10:10.


Отправлено: 09:57, 04-11-2010 | #3