需求
有朋友提出了这样一个需求:某数据表是用来打印包裹标签,有些标签需要重复打印,以贴在不同的包裹上,为了区分数据表中需要重复的标签,创建了新的一列记录重复的数量。如何让excel根据这个数量自动增加新的标签呢?
数据表可能如下图所示:
思路分析
最终效果
主要代码
Sub MultipleLabels()
Dim i, rowNum As Long, j, labelNum As Integer
'首先复制原始数据表到新表,以保护原始数据
Sheets("Sheet1").Select
Sheets("Sheet1").Copy Before:=Sheets(1)
'遍历第四列“打印数量”
For i = 2 To 65536
If Cells(i, 4).Value <> "" Then
lableNum = Cells(i, 4).Value - 1
'根据标签数量进行重复打印
For j = 1 To lableNum
Rows(i).Select
Selection.Copy
Rows(i + 1).Select
Selection.Insert Shift:=xlDown
Next j
End If
i = i + lableNum
Next i
End Sub