Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件。 在做仓储管理的时候发觉了一个很奇葩的问题,所有进货的瓷砖均没有相关的条码。这就意味着只能自己编码、生成条码然后粘贴。可找遍全网,虽然制作条码的工具很多,但是可以按模板批量打印的基本没有。因此,就想着用什么给他做一个条码制作,批量打印的东西。考虑了好几种开发方案,最后还是觉得杀鸡焉用牛刀,于是乎,果断的上了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、如需设置控件格式,右键,选择“设置控件格式”即可。 以上过程非常简单,前后就是几分钟的事。
Excel整体界面趋于平面化,显得清新简洁。流畅的动画和平滑的过渡,带来不同以往的使用体验。 |