我的老板要求我每月为员工票生成报告。然后,他要求我在相同数量的票中重复这些行。我意识到这不是很直观,但这就是他的要求。 我生成的文件就是这样
员工|票数
emp1 | 2
emp2 | 4
emp3 | 1
输出所需的方式是:
emp1 | 2
emp1 | 2
emp2 | 4
emp2 | 4
emp2 | 4
emp2 | 4
emp3 | 1
当然,对于较小的数字,我可以简单地复制并粘贴票证中的行,但是现在票证已超过100张,这需要很长时间才能手动复制过去。有什么方法可以运行一个脚本,该脚本会根据票证自动复制行?
答案 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”,它可以正常工作。