Excel VBA_Copy前 2 或 3 列,并每隔 3 或 4 列插入一次



我已经在使用来自各种项目的代码片段上挣扎了好几天,但似乎没有一段对我有用。 我想复制前 2 到 3 列,并在右侧每 3 到 4 列插入一次。 看起来很简单,但我不知道我在做什么!

任何帮助将不胜感激,因为我有大量的数据可以做到这一点。谢谢。

这是我到目前为止所拥有的:

Sub Copy_Insert()
Range("A1:C1").EntireColumn.Select
Range("A:C").Copy
Range("A:C").Insert Shift:=xlRight
End Sub

首先:不要在 VBA 中使用Select。它很少需要,需要时间。

如果我理解正确,您想将 A:C 列的内容复制到 D:F、G:I、J:L?

您可以使用:

Application.ScreenUpdating = False
extraPairs = 3
For i = 1 To extraPairs
lastColumn = i * 3
Columns(1).Copy Columns(lastColumn + 1)
Columns(2).Copy Columns(lastColumn + 2)
Columns(3).Copy Columns(lastColumn + 3)
Next
Application.ScreenUpdating = True

这个选项并不漂亮,需要一段时间,但这是我最终使用的,它工作正常:

子自动插入((

Dim i As Integer
Dim j As Integer
With Worksheets("Sheet1")
For i = 1 To .UsedRange.Columns.Count - 4
For j = 1 To 3
.Columns(i * 4 + j).Insert
.Columns(i * 4 + j).Value2 = .Columns(j).Value2
Next j
Next i
End With

结束子

最新更新