这两天公司盘点,想打印些盘点标签,类似下图这样的,在网上搜了下,没找到合适的案例,就自己做了份。
标签样式
首先,做个物料表我的是这样的,第一列,填写序号,这个挺重要的,就是依据它来打印的。序号按1,2,3顺序填写。
物料表
其它列,填写你需要的内容。
先说下,我比较懒,我是先盘点好,最后打印的标签,数量也打印的。
做标签页这个和平时自己做表格一样,你怎么顺眼怎么做。下图是我需要的,一页A4纸排了8个小标签
标签排版
上图中有个E9单元格,后面会用到。
标签页公式
标签页填写的公式
看上图,很简单的一个公式,“=VLOOKUP($E$9,物料名称!$A:$D,4,0)”,从物料名称表里按顺序填写名称。
第2个标签页,为“=VLOOKUP($E$9 1,物料名称!$A:$D,4,0)”,比第1个, 1,以此类推,第8个标签页, 7。
VLOOKUP是横着查找,$符号是绝对引用的意思,不带$为相对引用。
打印代码
Sub 打印标签()
Dim a As Integer '定义变量a为整数
Dim b As Integer '定义变量b为整数
Dim c As Integer '定义变量c为整数
'a = InputBox("请输入开始打印序号") '若要使用这句,把本行最前面的“'”删除,下同。
'同时,须把下面的“a = 1 及 b = 597 ”删除,或者在其前面加上豆撇 '
'b = InputBox("请输入结束打印序号")
'下面2行,是我图省事,自己用的。
a = 1 '从序号1开始
b = 597 '到序号597结束
c = (b 8) / 8 '你一页有几个标签,8就是几。比如你一页排了4个标签,这句就是c = (b 4) / 4
For i = a To c '从序号a打印到序号c,本例中,a是1,c = (b 8) / 8 = (597 8) / 8 = 75.625
Range("E9").Value = a '把E9单元格的数字传给变量a
'ActiveSheet.PrintOut '若你只有一个打印机,或者打印前先选定了打印机,可以使用这句,会使用默认打印机打印。
'下句可以指定使用哪个打印机来打印。From:=1, To:=1,可以指定打印第几页至第几页。
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Preview:=False, ActivePrinter:="Microsoft Print to PDF"
a = a 8 '数字8是一页的标签数量,若你一页排了4个标签,就改成a = a 4
Next i
End Sub
VBA代码
这个代码,很简单,注释我也写的挺清楚的,使用应该没啥问题。
若你的WPS没有安装VBA,可以从网上下个,在评论区我也贴个下载链接。excel自带vba,不用下。
对于E9单元格,若不想看到数字,可以设置字的颜色为纸的颜色,比如”白色“。
最后,若你的表格上看不到“开发工具”,就是下图中的最后那个。若有,点“宏”,即可看到“打印标签”项。
开发工具
按下图顺序即可找到。文件→选项→自定义功能区,勾选“开发工具”。WPS和Excel基本相同。
开发工具位置
如有错误,欢迎朋友们指正,以免误人。
忘记了件事,打印机的名字在系统打印机和扫描仪页查看,照抄填写到代码里即可。
查看打印机名字
,