Copy-Paste - тот же лист и процесс, но для всей таблицы - PullRequest
0 голосов
/ 06 марта 2019

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

Вот код, с которым я работаю:

Keyboard Shortcut: Ctrl+h

Range("B2").Copy Range("C1")
Range("B4").Copy Range("C3")
Range("B6").Copy Range("C5")

И так далее ... Это именно то, что я хочу, но мне было интересно, есть ли способчтобы обобщить это так, чтобы я мог выделить первую ячейку каждого «блока», для которого я хочу сделать это (то есть A1, A2, B1, B2, C1, C2 и т. д.), и просто использовать сочетание клавиш.Я заставил его работать частично, используя:

 Sub Format()

' Format Macro

' Keyboard Shortcut: Ctrl+h

  Selection.Cut
  ActiveCell.Offset(-1, 1).Range("A1").Select
  ActiveSheet.Paste
  ActiveCell.Offset(1, -1).Range("A1").Select
  Selection.EntireRow.Delete

End Sub

Но это всегда возвращается к начальной ячейке (в данном случае A1), когда я перехожу к следующему блоку.

Спасибо за вашу помощь!

1 Ответ

1 голос
/ 07 марта 2019

Как то так?Это одноразовая операция, но ее можно расширить, если существует более широкий шаблон.

Sub x()

With ActiveCell
    .Offset(-1, 1).Value = .Value
    .EntireRow.Delete
End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...