Форум по VBA, Excel и Word

VBA, Excel => VBA, макросы в Excel => Тема начата: tigrusha от 17 сентября 2015, 12:35

Название: Выделение ячейки и диапазона ячеек одновременно
Отправлено: tigrusha от 17 сентября 2015, 12:35
Добрый день.
Задача следующая.
После прыжка с 1-ой ячейки строки на 4 вправо, оставить выделенной 1-ую ячейку строки. Потом выделить диапазон с 4-ой ячейки вправо, оставив при этом 1-ую строку выделенной.

Например, нужно выделить А1,Е1:до ячейки, где есть данные.

Спасибо.
Название: Re: Выделение ячейки и диапазона ячеек одновременно
Отправлено: Администратор от 17 сентября 2015, 13:10
tigrusha, очень редко требуется выделять ячейки, чтобы с ними что-то сделать. Предполагаю, что для вашей задачи не нужно выделять ячейки. Но на всякий случай сделал код, который выделяет ячейки.

Код
Sub Main()

    Dim shAct As Excel.Worksheet, rng As Excel.Range
    Dim lngLCol As Long
   
   
    '1. Vba-именование активного листа. Лучше явно обращаться к листам.
    Set shAct = ActiveSheet
   
    '2. Поиск последнего столбца в строке 1.
        ' Команда "End" не ищет в скрытых ячейках. Поэтому может быть потребуется использовать
        ' команду "Find" с параметром "LookIn:=xlFormulas".
    lngLCol = shAct.Rows(1).Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns, _
        SearchDirection:=xlPrevious, MatchCase:=False, SearchFormat:=False).Column
       
    '3. Vba-именование нужных фрагментов. Нужным фрагментам присваивается одно имя "rng".
    Set rng = Application.Union(shAct.Range("A1"), shAct.Range("E1").Resize(1, lngLCol - 4))
   
    '4. Выделение нужного фрагмента.
    rng.Select

End Sub
[свернуть]