Excel宏 - 复制行>在原始复制行下插入复制行>环

时间:2012-03-07 15:10:38

标签: excel vba excel-vba

我需要一个宏,它会复制电子表格中的每个唯一行,并在原始复制行的正下方的两行中插入复制的行,然后对其后的每一行重复。

如果宏还可以输入以下文本字符串,那将是很好的 - “(A)”在原始复制行中,“(B)”在第二行中,“(C)”在第三行中。

文本字符串部分非常重要,因为如果需要,我总是可以使用连接公式。

我想要实现的屏幕截图:

screenshot

1 个答案:

答案 0 :(得分:1)

假设数据在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