ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 梁笑燕

[求助] 条码标签 请帮忙修改 能正常显示二维码 及每项内容

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-11 19:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
xyxcc177 发表于 2023-6-7 09:11
你使用的控件不支持汉字。

这怎么使用的呢 感觉好高级

TA的精华主题

TA的得分主题

发表于 2023-6-12 08:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
梁笑燕 发表于 2023-6-11 19:10
这怎么使用的呢 感觉好高级

运行exe文件即可,只是个示例

TA的精华主题

TA的得分主题

发表于 2023-6-12 13:32 | 显示全部楼层
大致看了一些你的文件,我理解的需求,
1,对打印数据要整理,以方便打印错误时补打印。
2,数据整合成二维码打印。
看了一下你的代码,可能比较初级,所以,我在代码中加了一些注释,希望你可以理解。
请测试附件。疑问的地方是二维码的内容不是很明确,不知对不对。
(附件中的代码很多来自论坛改写,如果原作者看到请包涵)

  1. Option Explicit

  2. Sub A1打印数据整理()

  3. Dim xrr, i&, arr(), m%, rc&, x%
  4. Dim x1%, x2%, x3%, x4%

  5. Application.ScreenUpdating = False

  6. xrr = Sheets("基础数据").UsedRange

  7. For i = 2 To UBound(xrr)
  8.     If xrr(i, 9) > 0 And xrr(i, 10) > 0 Then
  9.         x1 = Int(xrr(i, 10) / xrr(i, 9))    '整箱箱数
  10.         x2 = xrr(i, 10) Mod xrr(i, 9)       '零头
  11.         
  12.         '如果没有零头,标签枚数=箱数,否则标签枚数=箱数+1
  13.         If x2 = 0 Then x3 = x1 Else x3 = x1 + 1
  14.         '如果没有零头,尾箱标包数=标包数量,否则=零头
  15.         If x2 = 0 Then x4 = xrr(i, 9) Else x4 = x2
  16.         
  17.         For x = 1 To x3
  18.             m = m + 1
  19.             ReDim Preserve arr(1 To 15, 1 To m)
  20.             arr(1, m) = m           '序号
  21.             arr(2, m) = ""          '打印时间
  22.             arr(3, m) = xrr(i, 1)   '订单号
  23.             arr(4, m) = xrr(i, 2)   '订单行
  24.             arr(5, m) = "'" & x & "/" & x3    '标签序号
  25.             arr(6, m) = xrr(i, 3)   '供应商编码
  26.             arr(7, m) = xrr(i, 4)   '供应商名称
  27.             arr(8, m) = xrr(i, 5)   '物料编码
  28.             arr(9, m) = xrr(i, 6)   '版本
  29.             arr(10, m) = xrr(i, 7)   '物料名称
  30.             arr(11, m) = xrr(i, 8)   '规格
  31.             
  32.             If x = x3 Then
  33.                 arr(12, m) = x4   '本包数量
  34.             Else:
  35.                 arr(12, m) = xrr(i, 9)   '本包数量
  36.             End If
  37.             
  38.             arr(13, m) = xrr(i, 9)   '标包数量
  39.             arr(14, m) = Format(Date, "yyyymmdd")    '批号
  40.             arr(15, m) = xrr(i, 11)   '库区
  41.         Next
  42.     End If
  43. Next

  44. If m = 0 Then Exit Sub

  45. Sheets("打印数据").Select
  46. Cells.Select
  47. Selection.ClearContents

  48. Sheets("打印数据").Range(Cells(1, 1), Cells(1, 16)) = Array("序号", "打印时间", "订单号", "订单行", "标签序号", "供应商编码", "供应商名称", "物料编码", "版本", "物料名称", "规格", "本包数量", "标包数量", "批号", "库区", "备注") '添加
  49. Sheets("打印数据").Cells(2, 1).Resize(m, 15) = Application.Transpose(arr)

  50. ThisWorkbook.Save

  51. MsgBox "打印数据已整理。"

  52. Erase xrr
  53. Erase arr

  54. Application.ScreenUpdating = True
  55.    
  56. End Sub

  57. Sub A2标签打印()

  58. Sheets("标签模板").Select

  59. Dim pic
  60. For Each pic In ActiveSheet.Shapes
  61.     pic.Delete
  62. Next

  63. 'Application.ScreenUpdating = False

  64. Dim ss1$, i%, d As Date, xrr, ph$
  65. Dim x1%, x2%, x3%

  66. ph = ThisWorkbook.Path

  67. xrr = Sheets("打印数据").UsedRange

  68. For i = 2 To UBound(xrr)
  69.    If xrr(i, 3) <> "" And xrr(i, 16) = "" Then
  70.    
  71.     Sheets("标签模板").Select
  72.    
  73.     With Sheets("标签模板")
  74.         .Cells(2, 2) = xrr(i, 7) '供应商
  75.         .Cells(3, 2) = xrr(i, 8) '物料编码
  76.         .Cells(3, 4) = xrr(i, 6) '供应商编码
  77.         .Cells(4, 2) = xrr(i, 10) '物料名称
  78.         .Cells(5, 2) = xrr(i, 11) '规格
  79.         .Cells(6, 2) = xrr(i, 12) '本包数量
  80.         .Cells(6, 5) = xrr(i, 13) '标包数量
  81.         .Cells(7, 2) = xrr(i, 14) '批号
  82.         .Cells(7, 5) = xrr(i, 15) '库区
  83.         .Cells(8, 1) = "物料编码|版本号|批号|供应商编码|本包数量|EDI|行号|箱号(流水号)"
  84.      End With
  85.    
  86.         ss1 = xrr(i, 8) & "|" & xrr(i, 9) & "|" & xrr(i, 14) & "|" & xrr(i, 6) & "|" & xrr(i, 12) & "|" & "|" & "|" & xrr(i, 1)
  87.         Call wvew_made(ss1)
  88.          
  89.         '===如果不加延时,可能会出错!
  90.         d = Now
  91.         Do While Now - d < TimeValue("00:00:01")
  92.             DoEvents
  93.         Loop
  94.         
  95.     '      On Error Resume Next
  96.         ActiveSheet.Paste  '粘贴剪切板内的图片
  97.         Application.CutCopyMode = False
  98.         
  99.         With Selection       '图片是唯一的,设置图片:位置和大小
  100.             .ShapeRange.Height = 55
  101.             .ShapeRange.Width = 55
  102.             
  103.             .ShapeRange.Left = Cells(1, 5).MergeArea.Left + 25
  104.             .ShapeRange.Top = Cells(1, 5).MergeArea.Top + 5
  105.             .Name = "xx" & i
  106.         End With
  107.         
  108.         Cells(1, 1).Select
  109.         
  110. '        ActiveSheet.PrintOut

  111.        '====保存pdf,测试用====
  112.         ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
  113.         ph & "\第" & i - 1 & "页" & ".pdf", Quality:= _
  114.         xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, from:=1, To:=1, OpenAfterPublish:=False
  115.        '====保存pdf,测试用====
  116.       
  117.         Sheets("打印数据").Select
  118.         Cells(i, 2) = Now
  119.         Cells(i, 16) = "打印完成"
  120.         
  121.     End If
  122. Next

  123. ThisWorkbook.Save
  124. MsgBox "打印完成!"

  125. 'Application.ScreenUpdating = True

  126. End Sub
复制代码

供应商原材料标签-V3(1.01).rar

138.56 KB, 下载次数: 28

TA的精华主题

TA的得分主题

发表于 2023-6-12 14:10 | 显示全部楼层
本帖最后由 musicren2001 于 2023-6-12 15:40 编辑

做了一个测试版本,是否满足需求?


分了两步,先整理打印数据,后组合二维码,用的是纯代码(论坛前辈的)。
就是不知道二维码是不是这样组合的。

程序是转换PDF的,如果要直接打印,代码稍微修改即可。

另:
VBA的优势是整理数据,比如这个程序的第一步整理。
一般打印机都配有打印程序,二维码就不用这么麻烦了。
如果打印程序支持批处理命令,那么结合VBA整理数据,然后调用批处理打印就完美了。

TA的精华主题

TA的得分主题

发表于 2023-6-12 14:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 musicren2001 于 2023-6-12 15:38 编辑

重复了,代码删除了。

TA的精华主题

TA的得分主题

发表于 2023-6-12 14:18 | 显示全部楼层
贴代码要审核等待,那就看附件吧。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-12 20:55 | 显示全部楼层
目前这两部分修改后 可以使用了 谢谢大家的耐心回复

只会套用 基本可以说不会修改
663b5b30545b23b3400f1aead3c9ea3.png
437ee31d45207a523a96e1dc68c9a5a.png

2023.6.3删除及更改部分代码000供应商原材料标签-V3(1) - 副本.rar

58.68 KB, 下载次数: 14

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-12 20:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 梁笑燕 于 2023-6-12 22:33 编辑

打印结果
0d7b51380a3bb681bc18ae7c9975136.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-12 22:39 | 显示全部楼层

还有个问题是 这是在WPS2019启用宏使用的 这是说明什么呢? EXCEL2016及2019版测...

本帖最后由 梁笑燕 于 2023-6-12 22:58 编辑

8f07239439af1d188d4395c2b131979.png
还有个问题是  这是在WPS2019启用宏使用的
这是说明什么呢? EXCEL2016及2019版测试正常

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-12 23:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
是wps vba插件的版本过低?
有可以使用控件'BarCodeCtrl1'的vba插件版本吗 谢谢~
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-30 00:33 , Processed in 0.042360 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表