O que preciso alcançar é a segunda coluna abaixo. Eu sou um novato em VBA, então qualquer ajuda será muito apreciada.
abc1200 abc1200
MACHINE
supplier
cost
address
invoice number
abc2400 abc2400
MACHINE
supplier
cost
address
invoice number
.
.
.
O código da gravação é o seguinte. Só preciso repetir no intervalo selecionado
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
Responder1
Copiar/Colar só é necessário/usado durante a gravação de macro. No VBA, é muito mais fácil atribuir valores diretamente, como
targetcell.value = sourcecell.value
, etc.
Portanto, suas primeiras quatro linhas seriam simplesmente:
ActiveCell.Offset(0, 1).Range("A1").Value = ActiveCell.Offset(0, -1).Range("A1").Value
Você pode até reduzir isso para formas mais fáceis, especificando diretamente os nomes das células, dependendo das células que planeja usar.