Excel批量生成条码的方法.docx
《Excel批量生成条码的方法.docx》由会员分享,可在线阅读,更多相关《Excel批量生成条码的方法.docx(12页珍藏版)》请在冰豆网上搜索。
Excel批量生成条码的方法
Excel批量生成条码的方法
Liynha2019-12-31
最近需要在EXCEL中批量生成条码,每一行表格中有几个列是数字,要在其中一列上生成条码。
网上介绍的几个方法有:
条码字体,VBA宏等。
测试后发现,不能满足要求:
条码字体的方法能生成条码,但是扫描不了。
VBA的太复杂,也不是我想要的结果,都是单独打印一个条码。
经过一番XX,找到一段VBA代码,只是忘记了谁公布的,请作者谅解。
用VBA生成了条码,方法如下,供大家参考:
1、添加条码控件;
2、添加窗体;
3、添加VBA模块;
4、执行VBA代码。
EXCEL的版本是office2010,要打开设计模式。
具体的步骤:
1、打开设计模式
2、引用控件
3、在EXCEL表格的单元格上画出控件,会出现条码的样子
4、点击控件,右键选择属性,要记下left、top的值,这个值要写在VBA中,定位条码的位置的。
5、
6、记下这些数字后,在VBA中会自动生成控件,所以要删除画出的条码控件。
7、按ALT+F11键进入VBA编辑界面,在工作表中插入模块:
VBA的代码如下:
Sub生成条码()
DimBiao1AsWorksheet
DimBiao2AsWorksheet
DimSelStr()AsVariant
DimstrAsString
SetBiao1=ActiveSheet'定义表格
Biao1.Activate'定位到这个表
Fori=2To10'开始循环,这里有10行数据。
所以后边是10
Biao1.Activate
DoEvents'这个语句允许在执行过程中暂停
IfBiao1.Cells(i,2).Value=""Then'第二列的单元格为空就不生成条码
Else
WithBiao1.OLEObjects.Add(ClassType:
="BARCODE.BarCodeCtrl.1")'增加条码控件对象
.Object.Style=7'条码格式是code-128,其他的格式可以XX一下
.LinkedCell="B"&i'条码的数值去哪一个单元格的值
.Left=421'条码开始的位置,左边开始的位置
.Top=(i-2)*35.25+36'因为是要在对应的单元格上显示条码,所以条码顶部开始的位置开始用等差数列生成。
'.Top=(i-2)*35.25+3636是第一个条码顶部开始的位置,35.25是每一个条码的高度,(i-2)*35.25就是根据顺序计算条码变化的值
.Width=150'条码的宽度
'要重新改变条码的属性,才能显示单元格的数值
.Height=35.25
.Width=135'将条码的宽度改为135
EndWith
EndIf
Next
EndSub
8、执行VBA代码,如果出现提示:
9、这个错误是没有添加窗体的原因,添加窗体。
10、
11、如果没有这个控件,那可以在工作表上插入用户窗体,然后删除这个窗体,EXCEL会自动引用这个控件。
12、执行效果,美中不足的就是删除条码,要这设计模式中一个个选中后删除:
13、
14、
15、选中后,按DEL键可以删除。
应该是可以用VBA代码删除,等有空时在研究了。