重复excel数据的行
问题描述:
该宏适用于基于特定列中的整数值复制行。我如何获得它也复制原始数据的格式?重复excel数据的行
Sub DuplicateRows()
Dim currentRow As Integer
Dim currentNewSheetRow As Integer: currentNewSheetRow = 1
For currentRow = 1 To 3 'The last row of your data
Dim timesToDuplicate As Integer
timesToDuplicate = CInt(Sheet1.Range("D" & currentRow).Value2)
Dim i As Integer
For i = 1 To timesToDuplicate
Sheet2.Range("A" & currentNewSheetRow).Value2 = Sheet1.Range("A" & currentRow).Value2
Sheet2.Range("B" & currentNewSheetRow).Value2 = Sheet1.Range("B" & currentRow).Value2
Sheet2.Range("C" & currentNewSheetRow).Value2 = Sheet1.Range("C" & currentRow).Value2
currentNewSheetRow = currentNewSheetRow + 1
Next i
Next currentRow
End Sub
答
我不太明白你想什么来完成,但是当我要复制的一切(格式,值等),我用一个细胞的复制和PasteSpecial的功能。
Sub DuplicateRows()
Dim currentRow As Integer
Dim currentNewSheetRow As Integer: currentNewSheetRow = 1
For currentRow = 1 To 3 'The last row of your data
Dim timesToDuplicate As Integer
timesToDuplicate = CInt(Sheet1.Range("D" & currentRow).Value2)
Dim i As Integer
For i = 1 To timesToDuplicate
Sheet1.Range("A" & currentNewSheetRow).Copy
Sheet2.Range("A" & currentRow).PasteSpecial (xlPasteAll)
Sheet1.Range("B" & currentNewSheetRow).Copy
Sheet2.Range("B" & currentRow).PasteSpecial (xlPasteAll)
Sheet1.Range("C" & currentNewSheetRow).Copy
Sheet2.Range("C" & currentRow).PasteSpecial (xlPasteAll)
currentNewSheetRow = currentNewSheetRow + 1
Next i
Next currentRow
End Sub
另请看PasteSpecial函数的posible参数来完成您的结果。
你有什么试过?你有没有试过将单元格复制到新行的最明显的解决方案? – ApplePie 2012-07-18 16:45:02