Lo que necesito lograr es la segunda columna a continuación. Soy un novato en VBA por lo que cualquier ayuda será muy apreciada.
abc1200 abc1200
MACHINE
supplier
cost
address
invoice number
abc2400 abc2400
MACHINE
supplier
cost
address
invoice number
.
.
.
El código de la grabación es el siguiente. Solo necesito repetir en el rango seleccionado
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
Respuesta1
Copiar/Pegar sólo es necesario/utilizado durante la grabación de macros. En VBA, es mucho más fácil asignar valores directamente, como
targetcell.value = sourcecell.value
, etc.
Entonces tus primeras cuatro líneas serían simplemente:
ActiveCell.Offset(0, 1).Range("A1").Value = ActiveCell.Offset(0, -1).Range("A1").Value
Incluso podría reducir esto a formas más sencillas, especificando los nombres de las celdas directamente, dependiendo de las celdas que planee usar.