繁体   English   中英

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

[英]Excel VBA_Copy the first 2 or 3 columns and insert at every 3 or 4 column intervals

我一直在努力使用来自各种项目的代码片段,但似乎没有一个对我有用。 我想复制前 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

结束子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM