Мне нужно достичь того, что указано во второй колонке ниже. Я новичок в VBA, поэтому любая помощь будет оценена по достоинству.
abc1200 abc1200
MACHINE
supplier
cost
address
invoice number
abc2400 abc2400
MACHINE
supplier
cost
address
invoice number
.
.
.
Код из записи такой же как ниже. Просто нужно повторить в выбранном диапазоне
ActiveCell.Offset(0, -1).Range("A1").Select
Selection.Copy
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(6, -1).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(6, -1).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveSheet.Paste
решение1
Копировать/Вставить нужно/используется только во время записи макроса. В VBA гораздо проще напрямую назначать значения, например
targetcell.value = sourcecell.value
, и т. д.
Итак, ваши первые четыре строки будут просто:
ActiveCell.Offset(0, 1).Range("A1").Value = ActiveCell.Offset(0, -1).Range("A1").Value
Вы даже можете упростить это до более простых форм, напрямую указывая имена ячеек, в зависимости от того, какие ячейки вы планируете использовать.