Excel VBA_Copy первые 2 или 3 столбца и вставлять каждые 3 или 4 столбца интервалы - PullRequest
0 голосов
/ 17 января 2020

Я боролся в течение нескольких дней, используя куски кода из различных проектов, и ни один из них, похоже, не работает для меня. Я хотел бы скопировать первые 2–3 столбца и вставлять их каждые 3–4 столбца справа. Кажется достаточно простым, но я понятия не имею, что я делаю!

Любая помощь будет принята, поскольку у меня есть тонна данных, чтобы сделать это. Спасибо.

Вот что у меня есть:

Sub Copy_Insert()

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

End Sub

Ответы [ 2 ]

0 голосов
/ 20 января 2020

Этот параметр не очень приятный и занимает некоторое время, но вот что я в итоге использовал, и он работал нормально:

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

End Sub

0 голосов
/ 17 января 2020

Прежде всего: не используйте Select в VBA. Это редко требуется и требует времени.

Если я правильно понимаю, вы хотите скопировать содержимое столбца 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...