Макрос Excel: сделать запись на одну ячейку меньше указанной? - PullRequest
2 голосов
/ 08 декабря 2010

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

Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToLeft).Select
Range("Q12:T12").Select
Range("T12").Activate
Selection.Copy

End Sub

Как мне

  • заставить его перейти к последней ячейке строки, в которую я поместил курсор?
  • изменить конкретные диапазоны ячеек на диапазон, который просто означает: выбрать эту ячейку и еще 3 слева?

... selection.copy Думаю, я почти справлюсь:)

Большое спасибо Mike

Ответы [ 2 ]

5 голосов
/ 08 декабря 2010

Это скопирует последние четыре ячейки в любой строке, в которую вы нажали:

Sub CopyLastFourCellsOfRow()
Dim lastCell As Range
Dim rngToCopy As Range

Set lastCell = Selection.End(xlToRight)
Set rngToCopy = Range(lastCell, lastCell.Offset(0, -3))

rngToCopy.Copy

End Sub

Обновление - Если в вашей строке неверные данные, лучше всего начать с последнего столбца электронной таблицы (столбец IV) и затем вернуться обратно. Для этого замените оператор lastCell следующим:

Set lastCell = Cells(Selection.Row, 256).End(xlToLeft)
4 голосов
/ 08 декабря 2010

Вы можете фактически выполнить отдельные шаги, о которых вы просите, всего одним быстрым движением.Чтобы перейти к последней ячейке в текущей строке, вы просто используете ActiveCell.End (xlToRight).(Используйте «ActiveCell», потому что он эквивалентен «Selection», когда выбрана только одна ячейка, но работает, даже если выбрано несколько ячеек.)

Range(ActiveCell, ActiveCell.Offset(0, -3)).Select

выберет текущую ячейку и еще 3 слева,Обратите внимание, что вам не нужно делать «Selection.Copy» в отдельном шаге.Вы можете просто пойти:

Range(ActiveCell, ActiveCell.Offset(0, -3)).Copy
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...