我需要实现的功能如下面第二列所示。我是 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
您甚至可以将其简化为更简单的形式,直接指定单元格名称,具体取决于您计划使用的单元格。