前不久,我妹夫的瓷砖批发店开业,然后找我咨询财务管理、进销存管理问题。鉴于本人也算是一个有十多年经验的财务人员,因此给他理了一下管理环节。首先进销存我给他推荐了金蝶的智慧记,免费,财务业务一体化,而且多端响应。
可就在做仓储管理的时候发觉了一个很奇葩的问题,所有进货的瓷砖均没有相关的条码。这就意味着只能自己编码、生成条码然后粘贴。可找遍全网,虽然制作条码的工具很多,但是可以按模板批量打印的基本没有。因此,就想着用什么给他做一个条码制作,批量打印的东西。考虑了好几种开发方案,最后还是觉得杀鸡焉用牛刀,于是乎,果断的上了EXCEL。给他捣鼓出了。以下是截图:
1、输入编码自动生成二维码
2、生成批量打印模板
总结,最关键的还是这个生成批量打印模板这个过程,这里用到了循环输出方式。大致代码如下:
Sub make_plmt() On Error Resume Next Dim n As Integer Dim i As Integer Dim j As Integer Dim r As Integer Dim codewidth As Double Dim codeheight As Double codewdh = Sheet1.Shapes.Range(Array("BarCode")).Width codehet = Sheet1.Shapes.Range(Array("BarCode")).Height Application.ScreenUpdating = False '清空模板 For Each ctrl In Sheet2.Shapes ctrl.Delete Next ctrl '复制生成的二维码 Sheet1.Shapes.Range(Array("BarCode")).Select Selection.Copy Sheet2.Select Sheet2.Range("A1").Select '批量粘贴96个二维码到模板,这里可以换成动态数 For i = 1 To 96 ActiveSheet.Paste Next i '设置首行二维码位置,以便后面各列做对齐排列 For j = 1 To 8 Sheet2.Shapes.Range(Array("BarCodeCtrl" & j)).Select With Sheet2.Shapes("BarCodeCtrl" & j) .Top = 0 .Left = (j - 1) * codewdh End With Next j '使用二层循环,设置第二行至尾行二维码位置 '外层循环,设置首列二维码位置 For k = 2 To 12 n = 1 + 8 * (k - 1) Sheet2.Shapes.Range(Array("BarCodeCtrl" & n)).Select With Sheet2.Shapes("BarCodeCtrl" & n) .Top = (k - 1) * codehet .Left = Sheet2.Shapes("BarCodeCtrl1").Left End With '内层循环,逐行设置二维码位置 For r = n + 1 To n + 7 With Sheet2.Shapes("BarCodeCtrl" & r) .Top = Sheet2.Shapes("BarCodeCtrl" & n).Top .Left = Sheet2.Shapes("BarCodeCtrl" & r - 1).Left + codewdh End With Next r Next k Sheet2.PageSetup.CenterHeader = Sheet1.Range("D3") Application.PrintCommunication = True Application.ScreenUpdating = True If MsgBox("打印模板已生成!", vbOKOnly, "提示") = vbOK Then Sheet2.Activate End If End Sub
以下是具体的制作步骤:
1、插入Microsoft BarCode Control控件。需要特别说明的是,不同版本的EXCEL该控件的版本可能会有不同。
2、调整控件单元格关联属性
3、调整控件对象属性,选择条码相关参数。如条码类型、条码数据修正参数、显示参数等。一般情况下,日常使用Cord-39足够应付日常使用。如需二维码,请选择QR Code.
4、使用方式,在关联单元格输入条码参数,即可自动动态生成对应条码。
5、如需设置控件格式,右键,选择“设置控件格式”即可。
以上过程非常简单,前后就是几分钟的事。