Войти

Показать полную графическую версию : Excel - выбрать диапазон столбцов, указанных их номерами


megaloman
03-11-2010, 19:02
В макросе Excel при указании столбцов с помощю обозначающих их букв их диапазон можно выбрать как
Columns("C:E").Select
При указании столбца его номером один столбец можно выбрать как
Columns(3).Select
Как выбрать столбцы, например, с 3 по 5?

okshef
03-11-2010, 19:21
Поищу еще, а пока
Dim myUnion As Range
Set myUnion = Union(Columns(3), Columns(4), Columns(5))
myUnion.Select

можно циклом

Dim myUnion As Range
Set myUnion = Union(Columns(3), Columns(4))
For i = 5 To 10
Set myUnion = Union(myUnion, Columns(i))
myUnion.Select
Next

megaloman
04-11-2010, 09:57
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).??????? у меня не вышло

okshef
04-11-2010, 10:10
вынес Select »
я его только для проверки включил :)
А собственно, вразумительной инфы по столбцам-то и нет...

Pliomera
22-12-2010, 01:46
Как выбрать столбцы, например, с 3 по 5? »

Columns(3).Resize(, 3).Select




© OSzone.net 2001-2012