最近产线接到一批产品订单,客户提供的序列号格式无法与MES系统绑定,导致出货时外箱标签需手工处理。而产线员工对电脑操作不熟悉,手工填写标签速度慢且容易出错,临时抽调文员支持既不现实,也难以匹配生产节奏。
解决方案与代码实现
通过扫码枪、Excel和BarTender工具,设计以下流程:
- 扫码录入数据:员工用扫码枪逐个扫描产品上的SN号标签,数据实时存入Excel指定列。
- 触发打印逻辑:每扫完固定数量标签(如20个)SN号后,点击按钮自动合并数据并打印标签。
VBA代码实现:
Sub PrintBarTenderLabel()
Dim btApp As Object, btFormat As Object
Dim snRange As Range, snCell As Range
Dim combinedQRCodeValue As String
Dim templatePath As String, snCount As Integer
' 动态获取模板路径
templatePath = ThisWorkbook.Path & "\LabelTemplate.btw"
If Dir(templatePath) = "" Then
MsgBox "模板文件未找到!", vbCritical
Exit Sub
End If
' 读取扫码录入的SN号
With ThisWorkbook.Sheets("Sheet1")
Set snRange = .Range("A1:A" & .Cells(.Rows.Count, "A").End(xlUp).Row)
End With
' 合并SN号为换行分隔的字符串
For Each snCell In snRange
If Not IsEmpty(snCell.Value) Then
combinedQRCodeValue = combinedQRCodeValue & snCell.Value & vbCrLf
snCount = snCount + 1
End If
Next snCell
If Len(combinedQRCodeValue) > 0 Then
combinedQRCodeValue = Left(combinedQRCodeValue, Len(combinedQRCodeValue) - 1)
End If
' 调用BarTender打印
On Error Resume Next
Set btApp = CreateObject("BarTender.Application")
If Err.Number <> 0 Then
MsgBox "未安装BarTender!", vbCritical
Exit Sub
End If
On Error GoTo 0
Set btFormat = btApp.Formats.Open(templatePath)
With btFormat
.SetNamedSubStringValue "QRCode", combinedQRCodeValue
.SetNamedSubStringValue "QTY", snCount
.PrintOut False, True ' 静默打印
.Close False
End With
Set btFormat = Nothing
Set btApp = Nothing
End Sub
实施效果:
- 扫码替代手工录入,极大的缩短了装箱时间,提高产能!
- 自动生成二维码标签,省去各种复制粘贴调格式打印标签的操作,很大程度上避免错误。
由于时间有限,此方案为快速解决产线痛点而设计,细节尚不完善。如果您有好的建议,欢迎评论区交流!
产线角落的打印机仍在嗡嗡作响,但员工不再为标签焦头烂额。这一方案或许不够“高大上”,却印证了车间最朴素的真理——能用最小成本解决问题的工具,就是好工具。