2013-05-30 2 views
2

Я пытаюсь выбрать и строку из 5 ячеек справа (выбор должен содержать мою активную ячейку) моей активной ячейки. Мой текущий код:Простой выбор VBA: выбор 5 ячеек справа от активной ячейки

Sub SelectandCopy() 
' 
' SelectandCopy Macro 
' 
' Keyboard Shortcut: Ctrl+Shift+C 
' 
ActiveCell.CurrentRegion.Select 
Selection.Copy 
Windows("Study.xlsx").Activate 
End Sub 

Я хочу не определенный диапазон от моего рабочего листа, потому что я хочу, чтобы иметь возможность сделать выбор из этих наборов данных из любого места в моем рабочем листе. Любая помощь будет принята с благодарностью!

Вы бы использовали Selection.Extend?

ответ

7

Эта команда копирует 5 клеток справа от ActiveCell. Если у вас выбран диапазон, активная ячейка - верхняя левая ячейка диапазона.

Sub Copy5CellsToRight() 
    ActiveCell.Offset(, 1).Resize(1, 5).Copy 
End Sub 

Если вы хотите включить ActiveCell в диапазоне, который получает скопирована, вам не нужно смещения:

Sub ExtendAndCopy5CellsToRight() 
    ActiveCell.Resize(1, 6).Copy 
End Sub 

Обратите внимание, что вам не нужно выбрать перед копированием.

+0

Это сделал трюк, но он не копировал мою текущую активную ячейку. – user2437803

+0

См. Мой отредактированный ответ. Вторая версия будет включать вашу текущую активную ячейку. –

+0

Большое спасибо за помощь! – user2437803

1

В этом примере выбирается новый Range из Cells, определенный текущей ячейкой ячейке 5 справа.

Обратите внимание, что .Offset принимает аргументы Offset(row, columns) и может быть весьма полезен.


Sub testForStackOverflow() 
    Range(ActiveCell, ActiveCell.Offset(0, 5)).Copy 
End Sub 
+0

+1 - это работает точно так же, как и принятый ответ. –

Смежные вопросы