Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выбрать столбец из диапазона range - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выбрать столбец из диапазона range (Макросы/Sub)
Выбрать столбец из диапазона 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
Дата добавления - 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]
К сообщению приложен файл: 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]


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
Дата добавления - 19.09.2014 в 10:04
Gustav Дата: Пятница, 19.09.2014, 10:16 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2705
Репутация: 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]


МОИ: Ник, 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
Дата добавления - 19.09.2014 в 10:56
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выбрать столбец из диапазона range (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!