|
本帖最后由 boy8199 于 2019-7-16 15:03 编辑
有网友需要 打印条码的 正好自己也需要所以就做了一个.分享给大家. 请根据需要修改.
这个打印,完全可以使用普通打印机 打印不干胶. 激光的,喷墨的 都可以
开始序号 是 为了 分次打印,比如 上次你只打印了3个,这次从第4个开始打印.
大家还可以 设一下总的 打印个数,超出以后,自动填充第2次,打印到第二页去.
- Public Function 批量条形码生成(条码打印表 As Worksheet, 条码数值数组() As Variant, 开始序号 As Long, _
- 条码高度 As Long, 条码宽度 As Long, 每行个数 As Long, _
- Optional 单元格左边距 As Long = 1, Optional 单元格上边距 As Long = 1)
- On Error GoTo errHandler
-
- Application.ScreenUpdating = False
- Dim 序号 As Long
- Dim 条码左边距 As Long: Dim 条码上边距 As Long
- Dim 行号 As Long: Dim 列号 As Long
-
- For 序号 = 开始序号 To 开始序号 + UBound(条码数值数组, 1) - 1
-
- 行号 = Int((序号 - 1) / 每行个数) + 1
- 列号 = ((序号 - 1) Mod 每行个数) + 1
- 条码左边距 = 条码打印表.Cells(行号, 列号).Left + 单元格左边距
- 条码上边距 = 条码打印表.Cells(行号, 列号).Top + 单元格上边距
-
- If 条码数值数组(序号 - 开始序号 + 1, 1) <> "" Then
-
- With 条码打印表.OLEObjects.Add(ClassType:="BARCODE.BarCodeCtrl.1", Link:=False, _
- DisplayAsIcon:=False, Left:=条码左边距, Top:=条码上边距, _
- Width:=条码宽度, Height:=条码高度)
- .Name = "myBarCodeCtr" & 序号 '设置条码控件名称
- .Object.Style = 7
- .Object.Value = 条码数值数组(序号 - 开始序号 + 1, 1)
- .ShapeRange.ScaleHeight 3, msoFalse, msoScaleFromTopLeft
- .ShapeRange.ScaleWidth 3, msoFalse, msoScaleFromTopLeft
- End With
-
-
- End If
-
- Next
- Application.ScreenUpdating = True
- Exit Function
- errHandler:
-
- Application.ScreenUpdating = True
- MsgBox "添加条码出现错误: " & Err.Number & "-" & Err.Description
-
- End Function
复制代码
补充内容 (2020-7-6 15:13):
因为 有网友 不是 特别 熟悉 vba 的用法. 我 在后面 又 进行了 补充和升级 让代码 可以 间隔打印,方便 套用标题说明等文字(套打). 其实 原代码也可以套打,就是 需要 在同一个单元格中 调整,有些不便. |
评分
-
3
查看全部评分
-
|