如何在Excel把数据生成不同份数汇总?
在Excel中,可以用VBA宏来快速自动生成条码。VBA宏编制的基本思路:(1)首先自动获得数据行数(即条码数+1);(2)通过循环,从第2行开始,将A列单元格的条码,填写到C列,填写次数即为B列单元格的数据。假设有如下图所示的Excel工作表(假设工作表名称为Sheet1)。
按【Alt+F11】组合键进入到VBA宏代码编辑窗口,然后单击【插入\模块】菜单进入通用模块窗口,然后输入如下图所示的VBA宏代码:
根据上述的宏代码编制思路,编写了一个名为“生成条码”的宏。通过End(xlUp).Row属性,获得数据最后一行的行号。然后从第2行开始,获得A列中的条码及B列中的打印次数,再通过一个循环将条码填写到C列相应的单元格中。宏代码输入完毕,返回到Excel工作表窗口,然后按【Alt+F8】组合键,调出Excel【宏】窗口,在【宏】窗口中选择“生成条码”宏,再单击“执行”按钮,Excel系统将自动运行上面的【生成条码】宏,并按打印次数生成相应个数有条码,结果如下图示:
因为宏代码实现了自动获取数据行数,所以在使用中无需人工干预,即可按指定次数生成每个条码,实现操作的自动化。VBA代码非常精练高效,应对一些机械的、重复性的工作效率极高。下面给出VBA宏代码的文本(可直接复制使用):
Sub 生成条码()
Dim ws As Worksheet, lastRow As Long
Dim k As Long, r As Long, barcode As String
Set ws = ThisWorkbook.Worksheets("Sheet1")
'取得数据行数
lastRow = Range("A" & ws.Rows.Count).End(xlUp).Row
r = 2 'C列数据开始行号
With ws
For k = 2 To lastRow
barcode = .Range("A" & k).Value '条码
Number = .Range("B" & k).Value '打印次数
For j = 1 To Number '将条码填写到C列,重复Number次
.Range("C" & r).Value = barcode
r = r + 1
Next
Next
End With
End Sub
希望我的回答能帮到你。
我是鉴水鱼老师,关注我,持续分享更多的Excel知识与操作技巧。