Excel VBA_复制前2或3列,并每3或4列间隔插入

问题描述 投票:0回答:2

我一直在努力使用各种项目中的代码段,但似乎没有一个对我有用。我想复制前2到3列,并每3到4列插入一次。似乎很简单,但我不知道自己在做什么!

我们将提供大量数据来帮助您,我们将为您提供任何帮助。谢谢。

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

Sub Copy_Insert()

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

End Sub
excel vba insert copy offset
2个回答
0
投票

首先:不要在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

0
投票

此选项不是很漂亮,需要一段时间,但这是我最终使用的,效果很好:

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

结束子

© www.soinside.com 2019 - 2024. All rights reserved.