如何根据列重复行n次?

时间:2019-07-09 08:36:13

标签: excel

我的老板要求我每月为员工票生成报告。然后,他要求我在相同数量的票中重复这些行。我意识到这不是很直观,但这就是他的要求。 我生成的文件就是这样


员工|票数
emp1 | 2
emp2 | 4
emp3 | 1

输出所需的方式是:

emp1 | 2
emp1 | 2
emp2 | 4
emp2 | 4
emp2 | 4
emp2 | 4
emp3 | 1

当然,对于较小的数字,我可以简单地复制并粘贴票证中的行,但是现在票证已超过100张,这需要很长时间才能手动复制过去。有什么方法可以运行一个脚本,该脚本会根据票证自动复制行?

1 个答案:

答案 0 :(得分:0)

我使用此https://www.extendoffice.com/documents/excel/4054-excel-duplicate-rows-based-on-cell-value.html

找到了脚本

Sub CopyData()
'Updateby Extendoffice 20160922
    Dim xRow As Long
    Dim VInSertNum As Variant
    xRow = 1
    Application.ScreenUpdating = False
    Do While (Cells(xRow, "A") <> "")
        VInSertNum = Cells(xRow, "D")
        If ((VInSertNum > 1) And IsNumeric(VInSertNum)) Then
           Range(Cells(xRow, "A"), Cells(xRow, "D")).Copy
           Range(Cells(xRow + 1, "A"), Cells(xRow + VInSertNum - 1, "D")).Select
           Selection.Insert Shift:=xlDown
           xRow = xRow + VInSertNum - 1
        End If
        xRow = xRow + 1
    Loop
    Application.ScreenUpdating = False
End Sub

我所需要做的就是用票证数量列替换“ D”,它可以正常工作。