excel – 如何用macros复制每一行

我有N + 1行的Excel表,其中A列有唯一的ID N.

我需要复制每一行,以便在第N行下面将会有三个新的行,其中唯一ID为Nb,Nc,Nd

例如样本input行:

id1 data here id2 data2 here 

例如样本输出:

 id1 data here id1-b data here id1-c data here id1-d data here id2 data2 here id2-b data2 here id2-c data2 here id2-d data2 here 

你可以尝试这样的事情

 Sub Macro1() Dim sheet As Worksheet Dim usedRange As Range Set sheet = ActiveSheet Set usedRange = sheet.usedRange Dim i As Integer For i = 1 To usedRange.Rows.Count Dim row As Range Set row = usedRange.Rows(((i - 1) * 4) + 1) Dim iCopy As Integer For iCopy = 1 To 3 row.Copy Dim insertRow As Range Set insertRow = usedRange.Rows(((i - 1) * 4) + 1 + iCopy) insertRow.insert xlDown Dim copiedRow As Range Set copiedRow = usedRange.Rows(((i - 1) * 4) + 1 + iCopy) copiedRow.Cells(1, 1) = copiedRow.Cells(1, 1) & "-" & Chr(97 + iCopy) Next iCopy Next i End Sub 

如果我需要知道如何使用VBA做一些事情,最简单的方法是手动执行,并在macros中logging我的操作。 这通常是一个简单的程序来编辑我的精确要求的macros。

我想只复制每个复制数据项末尾没有连字符的行,所以我省略了代码中的最后一行

'copiedRow.Cells(1,1)= copiedRow.Cells(1,1)&“ – ”&Chr(97 + iCopy)

它完美地复制了行,谢谢。