Макрос Excel - Копировать строку> Вставить скопированные строки в исходную скопированную строку> Петля - PullRequest
0 голосов
/ 07 марта 2012

Мне нужен макрос, который будет копировать каждую уникальную строку в электронной таблице и вставлять скопированные строки в две строки непосредственно под исходной скопированной строкой, а затем повторять для каждой строки после нее.

Было бы здорово, если бы макрос мог также вводить следующие текстовые строки - "(A)" в исходной скопированной строке, "(B)" во второй и "(C)" в третьей.

Текстовая строка не очень важна, так как я всегда могу использовать формулу конкатенации, если требуется.

Скриншот того, чего я пытаюсь достичь:

screenshot

1 Ответ

1 голос
/ 07 марта 2012

Предполагая, что данные находятся в столбце A, и вы хотите получить результат в столбце C (согласно вашей картинке), это должно работать:

Public Sub doIt()

    Dim data As Variant
    Dim modifiedData As Variant
    Dim i As Long
    Dim j As Long

    data = ActiveSheet.UsedRange.Columns(1)
    ReDim modifiedData(1 To (UBound(data, 1) - 1) * 3 + 1, 1 To 1) As Variant

    modifiedData(1, 1) = data(1, 1) 'header

    j = 2
    For i = 2 To UBound(data, 1)
        modifiedData(j, 1) = "(A) - " & data(i, 1)
        modifiedData(j + 1, 1) = "(B) - " & data(i, 1)
        modifiedData(j + 2, 1) = "(C) - " & data(i, 1)
        j = j + 3
    Next i

    With ActiveSheet
        .Cells(1, 3).Resize(UBound(modifiedData, 1), 1) = modifiedData
    End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...