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

Вход

Регистрация

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

 

= Мир MS Excel/Выделить несколько ячеек/диапазонов одновременно - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделить несколько ячеек/диапазонов одновременно (Макросы/Sub)
Выделить несколько ячеек/диапазонов одновременно
lFJl Дата: Пятница, 29.01.2016, 08:41 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 231
Репутация: 6 ±
Замечаний: 0% ±

Excel 2007
Доброго дня!
Подскажите пожалуйста, как выделить допустим активную ячейку и через 1 от активной
Пробовал через [vba]
Код
range(ActiveCell.Offset(1, 0),ActiveCell.Offset(3, 0),ActiveCell.Offset(0, 6)).Select
[/vba]
но чет ошибку выдает.
Хотя через запись макроса можно сделаь в таком виде: [vba]
Код
Range("T15,Y17,AC15,AF17").Select
[/vba]Можете подсказать?
 
Ответить
СообщениеДоброго дня!
Подскажите пожалуйста, как выделить допустим активную ячейку и через 1 от активной
Пробовал через [vba]
Код
range(ActiveCell.Offset(1, 0),ActiveCell.Offset(3, 0),ActiveCell.Offset(0, 6)).Select
[/vba]
но чет ошибку выдает.
Хотя через запись макроса можно сделаь в таком виде: [vba]
Код
Range("T15,Y17,AC15,AF17").Select
[/vba]Можете подсказать?

Автор - lFJl
Дата добавления - 29.01.2016 в 08:41
Roman777 Дата: Пятница, 29.01.2016, 09:35 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 783
Репутация: 88 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
lFJl, разница то большая) Ниже [vba]
Код
Range("T15,Y17,AC15,AF17").Select
[/vba] тут указаны диапазоны в виде строки, а выше нет.
Я бы использовал ф-ю Union.
[vba]
Код
Sub sel()
Dim rng As Range
Set rng = Union(ActiveCell.Offset(1, 0), ActiveCell.Offset(3, 0), ActiveCell.Offset(0, 6))
rng.Select
End Sub
[/vba]


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Пятница, 29.01.2016, 09:36
 
Ответить
СообщениеlFJl, разница то большая) Ниже [vba]
Код
Range("T15,Y17,AC15,AF17").Select
[/vba] тут указаны диапазоны в виде строки, а выше нет.
Я бы использовал ф-ю Union.
[vba]
Код
Sub sel()
Dim rng As Range
Set rng = Union(ActiveCell.Offset(1, 0), ActiveCell.Offset(3, 0), ActiveCell.Offset(0, 6))
rng.Select
End Sub
[/vba]

Автор - Roman777
Дата добавления - 29.01.2016 в 09:35
lFJl Дата: Пятница, 29.01.2016, 10:11 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 231
Репутация: 6 ±
Замечаний: 0% ±

Excel 2007
О, спасибо!
Я как раз наткнулся на эту функцию, начал ее изучать! :)
 
Ответить
СообщениеО, спасибо!
Я как раз наткнулся на эту функцию, начал ее изучать! :)

Автор - lFJl
Дата добавления - 29.01.2016 в 10:11
Rioran Дата: Суббота, 30.01.2016, 03:51 | Сообщение № 4
Группа: Авторы
Ранг: Ветеран
Сообщений: 902
Репутация: 285 ±
Замечаний: 0% ±

Excel 2013
lFJl, здравствуйте.

Ваш исходный вариант был почти рабочий. Если присмотреться как пишет макрорекодер и вспомнить про метод ".Address", то можно было бы придумать нечто вроде:

[vba]
Код
Range(Selection.Cells(1, 1).Address & "," & Selection.Cells(1, 1).Offset(2, 0).Address).Select
[/vba]

Где "Cells(1, 1)" - перестраховка на случай, если выделено несколько ячеек.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
СообщениеlFJl, здравствуйте.

Ваш исходный вариант был почти рабочий. Если присмотреться как пишет макрорекодер и вспомнить про метод ".Address", то можно было бы придумать нечто вроде:

[vba]
Код
Range(Selection.Cells(1, 1).Address & "," & Selection.Cells(1, 1).Offset(2, 0).Address).Select
[/vba]

Где "Cells(1, 1)" - перестраховка на случай, если выделено несколько ячеек.

Автор - Rioran
Дата добавления - 30.01.2016 в 03:51
Michael_S Дата: Суббота, 30.01.2016, 10:52 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1831
Репутация: 343 ±
Замечаний: 0% ±

Excel2016
Где "Cells(1, 1)" - перестраховка на случай, если выделено несколько ячеек.
На этот случай есть Activecell (в общем случае с Selection.Cells(1,1) не совпадает)


ЯД: 41001136675053
WM: R389613894253
 
Ответить
Сообщение
Где "Cells(1, 1)" - перестраховка на случай, если выделено несколько ячеек.
На этот случай есть Activecell (в общем случае с Selection.Cells(1,1) не совпадает)

Автор - Michael_S
Дата добавления - 30.01.2016 в 10:52
Wasilich Дата: Суббота, 30.01.2016, 12:02 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1195
Репутация: 316 ±
Замечаний: 0% ±

2003
выделить допустим активную ячейку и через 1 от активной
Так, что ли?
[vba]
Код
  C = Selection.Column
  R = Selection.Row
  Union(ActiveCell, Cells(R + 2, C), Cells(R, C + 2)).Select
[/vba]


Сообщение отредактировал Wasilic - Суббота, 30.01.2016, 12:03
 
Ответить
Сообщение
выделить допустим активную ячейку и через 1 от активной
Так, что ли?
[vba]
Код
  C = Selection.Column
  R = Selection.Row
  Union(ActiveCell, Cells(R + 2, C), Cells(R, C + 2)).Select
[/vba]

Автор - Wasilich
Дата добавления - 30.01.2016 в 12:02
Gustav Дата: Воскресенье, 31.01.2016, 02:04 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1442
Репутация: 550 ±
Замечаний: 0% ±

начинал с Excel 4.0...
C = Selection.Column
R = Selection.Row
Union(ActiveCell, Cells(R + 2, C), Cells(R, C + 2)).Select

Аналогично:
[vba]
Код
Range(Application.ConvertFormula("RC,R[2]C,RC[2]", xlR1C1, xlA1)).Select
[/vba]


Мой tip box - яд 41001663842605
 
Ответить
Сообщение
C = Selection.Column
R = Selection.Row
Union(ActiveCell, Cells(R + 2, C), Cells(R, C + 2)).Select

Аналогично:
[vba]
Код
Range(Application.ConvertFormula("RC,R[2]C,RC[2]", xlR1C1, xlA1)).Select
[/vba]

Автор - Gustav
Дата добавления - 31.01.2016 в 02:04
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделить несколько ячеек/диапазонов одновременно (Макросы/Sub)
Страница 1 из 11
Поиск:

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