Выбрать столбец из диапазона range
yrHeTaTeJlb
Дата: Пятница, 19.09.2014, 08:52 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Можно ли имея объект класса range r1 получить объект r2, который будет столбцом из r1? Например: [vba]Код
r1 = Range("A1:E5"); r2 = r1.Columns(1) 'Так, наверно, не бывает. Эквивалентно r2 = Range("B1:B5")
[/vba] Вопрос скорее не "Можно ли", а "Есть ли функция". Так как выдрать поддиапазон, конечно, можно, но не хочется изобретать велосипед.
Можно ли имея объект класса range r1 получить объект r2, который будет столбцом из r1? Например: [vba]Код
r1 = Range("A1:E5"); r2 = r1.Columns(1) 'Так, наверно, не бывает. Эквивалентно r2 = Range("B1:B5")
[/vba] Вопрос скорее не "Можно ли", а "Есть ли функция". Так как выдрать поддиапазон, конечно, можно, но не хочется изобретать велосипед. yrHeTaTeJlb
Ответить
Сообщение Можно ли имея объект класса range r1 получить объект r2, который будет столбцом из r1? Например: [vba]Код
r1 = Range("A1:E5"); r2 = r1.Columns(1) 'Так, наверно, не бывает. Эквивалентно r2 = Range("B1:B5")
[/vba] Вопрос скорее не "Можно ли", а "Есть ли функция". Так как выдрать поддиапазон, конечно, можно, но не хочется изобретать велосипед. Автор - yrHeTaTeJlb Дата добавления - 19.09.2014 в 08:52
_Boroda_
Дата: Пятница, 19.09.2014, 09:14 |
Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация:
6478
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
Ну, например, индексом с нулевым показателем в строках [vba]Код
Sub tt() Dim r_ As Range Dim r1_ As Range Set r_ = Range("A1:C3") Set r1_ = WorksheetFunction.Index(r_, 0, 1) End Sub
[/vba]
Ну, например, индексом с нулевым показателем в строках [vba]Код
Sub tt() Dim r_ As Range Dim r1_ As Range Set r_ = Range("A1:C3") Set r1_ = WorksheetFunction.Index(r_, 0, 1) End Sub
[/vba] _Boroda_
К сообщению приложен файл:
7785.xlsm
(12.5 Kb)
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Ну, например, индексом с нулевым показателем в строках [vba]Код
Sub tt() Dim r_ As Range Dim r1_ As Range Set r_ = Range("A1:C3") Set r1_ = WorksheetFunction.Index(r_, 0, 1) End Sub
[/vba] Автор - _Boroda_ Дата добавления - 19.09.2014 в 09:14
Формуляр
Дата: Пятница, 19.09.2014, 09:53 |
Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация:
255
±
Замечаний:
0% ±
Excel 2003, 2013
r2 = r1.Columns(1) 'Так, наверно, не бывает. Эквивалентно r2 = Range("B1:B5")
Ну почему же не бывает? Только не r2 = , а Set r2 = и не Columns(1), а Columns(2) ... А так, всё работает. [vba]Код
Set r2 = Range("A1:E5").Columns(2) 'Эквивалентно Set r2 = Range("B1:B5")
[/vba]
r2 = r1.Columns(1) 'Так, наверно, не бывает. Эквивалентно r2 = Range("B1:B5")
Ну почему же не бывает? Только не r2 = , а Set r2 = и не Columns(1), а Columns(2) ... А так, всё работает. [vba]Код
Set r2 = Range("A1:E5").Columns(2) 'Эквивалентно Set r2 = Range("B1:B5")
[/vba]Формуляр
Excel 2003 EN, 2013 EN
Сообщение отредактировал Формуляр - Пятница, 19.09.2014, 09:54
Ответить
Сообщение r2 = r1.Columns(1) 'Так, наверно, не бывает. Эквивалентно r2 = Range("B1:B5")
Ну почему же не бывает? Только не r2 = , а Set r2 = и не Columns(1), а Columns(2) ... А так, всё работает. [vba]Код
Set r2 = Range("A1:E5").Columns(2) 'Эквивалентно Set r2 = Range("B1:B5")
[/vba]Автор - Формуляр Дата добавления - 19.09.2014 в 09:53
yrHeTaTeJlb
Дата: Пятница, 19.09.2014, 10:04 |
Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Ну почему же не бывает? Только не r2 = , а Set r2 = и не Columns(1), а Columns(2) ... А так, всё работает. Set r2 = Range("A1:E5").Columns(2) 'Эквивалентно Set r2 = Range("B1:B5")
о_о Вот это поворот. Кто бы мог подумать, что я для примера придумаю то же имя для такой функции что и разработчики VBA. Спасибо большое!
Ну почему же не бывает? Только не r2 = , а Set r2 = и не Columns(1), а Columns(2) ... А так, всё работает. Set r2 = Range("A1:E5").Columns(2) 'Эквивалентно Set r2 = Range("B1:B5")
о_о Вот это поворот. Кто бы мог подумать, что я для примера придумаю то же имя для такой функции что и разработчики VBA. Спасибо большое!yrHeTaTeJlb
Ответить
Сообщение Ну почему же не бывает? Только не r2 = , а Set r2 = и не Columns(1), а Columns(2) ... А так, всё работает. Set r2 = Range("A1:E5").Columns(2) 'Эквивалентно Set r2 = Range("B1:B5")
о_о Вот это поворот. Кто бы мог подумать, что я для примера придумаю то же имя для такой функции что и разработчики VBA. Спасибо большое!Автор - yrHeTaTeJlb Дата добавления - 19.09.2014 в 10:04
Gustav
Дата: Пятница, 19.09.2014, 10:16 |
Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2701
Репутация:
1123
±
Замечаний:
0% ±
начинал с Excel 4.0, видел 2.1
А можно еще для столбца буковки использовать, например, B вместо 2: [vba]Код
Set r2 = Range("C1:G5").Columns("B") 'Эквивалентно Set r2 = Range("D1:D5")
[/vba] И в случае буковок можно диапазон столбцов выбирать: [vba]Код
Set r2 = Range("C1:G5").Columns("B:D") 'Эквивалентно Set r2 = Range("D1:F5")
[/vba] А цифрами 2:4 так столбцы не выбрать... Зато можно строчки: [vba]Код
Set r2 = Range("C1:G5").Rows("2:4") 'Эквивалентно Set r2 = Range("C2:G4")
[/vba]
А можно еще для столбца буковки использовать, например, B вместо 2: [vba]Код
Set r2 = Range("C1:G5").Columns("B") 'Эквивалентно Set r2 = Range("D1:D5")
[/vba] И в случае буковок можно диапазон столбцов выбирать: [vba]Код
Set r2 = Range("C1:G5").Columns("B:D") 'Эквивалентно Set r2 = Range("D1:F5")
[/vba] А цифрами 2:4 так столбцы не выбрать... Зато можно строчки: [vba]Код
Set r2 = Range("C1:G5").Rows("2:4") 'Эквивалентно Set r2 = Range("C2:G4")
[/vba] Gustav
МОИ: Ник , Tip box: 41001663842605
Ответить
Сообщение А можно еще для столбца буковки использовать, например, B вместо 2: [vba]Код
Set r2 = Range("C1:G5").Columns("B") 'Эквивалентно Set r2 = Range("D1:D5")
[/vba] И в случае буковок можно диапазон столбцов выбирать: [vba]Код
Set r2 = Range("C1:G5").Columns("B:D") 'Эквивалентно Set r2 = Range("D1:F5")
[/vba] А цифрами 2:4 так столбцы не выбрать... Зато можно строчки: [vba]Код
Set r2 = Range("C1:G5").Rows("2:4") 'Эквивалентно Set r2 = Range("C2:G4")
[/vba] Автор - Gustav Дата добавления - 19.09.2014 в 10:16
yrHeTaTeJlb
Дата: Пятница, 19.09.2014, 10:56 |
Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
А можно еще для столбца буковки использовать, например, B вместо 2:
О! А вот это просто замечательно. Не буду вдаваться в подробности как именно, но эта информация немного упростила мне жизнь:)
А можно еще для столбца буковки использовать, например, B вместо 2:
О! А вот это просто замечательно. Не буду вдаваться в подробности как именно, но эта информация немного упростила мне жизнь:)yrHeTaTeJlb
Ответить
Сообщение А можно еще для столбца буковки использовать, например, B вместо 2:
О! А вот это просто замечательно. Не буду вдаваться в подробности как именно, но эта информация немного упростила мне жизнь:)Автор - yrHeTaTeJlb Дата добавления - 19.09.2014 в 10:56