我一直在努力使用各种项目中的代码段,但似乎没有一个对我有用。我想复制前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
此选项不是很漂亮,需要一段时间,但这是我最终使用的,效果很好:
Sub AutoInsert()
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
结束子