在EXCEL使用CODE128宋体实现扫描

在EXCEL使用CODE128宋体实现扫描

ID:40014376

大小:41.31 KB

页数:5页

时间:2019-07-17

在EXCEL使用CODE128宋体实现扫描_第1页
在EXCEL使用CODE128宋体实现扫描_第2页
在EXCEL使用CODE128宋体实现扫描_第3页
在EXCEL使用CODE128宋体实现扫描_第4页
在EXCEL使用CODE128宋体实现扫描_第5页
资源描述:

《在EXCEL使用CODE128宋体实现扫描》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、在EXCEL使用CODE128宋体实现可扫描在公司设计一个标签中,有点复杂,需要用到数据库中的数据,还需有一些比较复杂的算法,所以就用EXCEL来实现打印标签了。开始我们是用39码字体来实现。39码好做啊,加*号就行了,可是后来我们的号有了空格,39码就做不了啦。只能换CODE128码来做。于是就用了BarCode控件来实现。我们的标签上有8个不同的条码,于是加控件,改控件,开始打印。好吧,问题来了,条码不能刷新啊,每次打印都是上一次的条码。于是上了万能的*度(此处涉及广告用*代替^O^),找到方法。下面是一位大师贡

2、献出来的,谢谢这位大师的代码。PrivateSubWorksheet_Change(ByValTargetAsRange)ForEachbarcodeInActiveSheet.OLEObjectsIfLCase(barcode.name)Like"barcodectrl*"ThenWithbarcodem=.Height.Height=m-1.Height=mEndWithEndIfNextEndSubOK,刷新问题解决,感觉大功告成,于是发到现场去做了。谁知道,这才是麻烦的开始。因为我们是大批量的打印标签,要求速

3、度快。这个标签每打印一张要刷新一次,所以有些慢,再说有8条BarCode控件要刷新,再说EXCEL计算本来就不强,所以每打印1张10*8cm的标签有时要3-4秒。这真受不了。这不行,总得想办法啊,再上万能的*度,说是用TBarCode控件,条码能自动刷新。于是我再改吧。试用,真的可以刷新,可是你这个是什么烂条码,每张条码都有Demo印,好吧,谁让我没买授呢,我忍了。因为是批量打印,我们有些条码是固定的,有些是每一张都要变化的。问题是有些机器能每张都刷新,有些机子不能(多台机器都需打印),查了设置都是一样的啊,晕!甚至

4、有些改了些设置能自动刷新了,关了文件打开后又不能刷新了,而且打印多了也会变得很慢。这又搞大了,心里在骂“Ø₰℅₩₥₢₰℅ℓ”,此处省略200句。好吧,路总得走啊,因为格式已确定了,并已让客户确认了,总不能跟客户说“臣妾做不到啊”吧,于是想之前用39码字体是可行的,那我们就用Code128字体吧,其实之前也用过。可是大家都知道吧,直接用Code128字体打印出来的是扫描不出来的。于是,还是*度吧,于是就放大招了,学习Code128字体的编码规则,Code128条形码编码规范。并且打了Code128字体条码和Code12

5、8条形码进行了对比。发现了其中的奥秘。原来Code128条形码中间部份与Code128字体条码是一样的。各位看官,重点来了,上面的唠唠叨叨只是为的以下的重点^O^.1、Code128条形码,由开始符(位)+数据符(位)+较验符(位)+结束符(位)组成。所以我们直接把数据变成Code128字体,就会少了开始符(位)、较验符(位)、结束符(位),所以条码枪当然是读不出的。所以我们就得用公式为数据加上这些符(位),比如你想打把123456的条码字体打出来的条码能扫描,就得。开始符(位)+123456+较验符(位)+结束符(

6、位)。2、开始符(位)、结束符(位)是比较好办的,你可以到字体中去找到相应的字符。可能设计的字体会有差别,我下载到的字体开始符为“Ì”,结束符为“Δ。3、较验符(位),这个是最难搞的,需要对码,算码。有些说明说是可以自行选择加不加较验符,但本人还不知道不加较验符是要怎么处理。找不到相应的说明。首先计算较验符的ID值,公式为:(开始符ID值+第1位数据符*1+第2位数据符*2+……第N位数据符*N)%103,这个%是求余数。以123为例,ID=(104+1*1+2*2+3*3)%103=15用ID值查对应表得出较验符

7、的值。ID15对应的是“/”。4、组码,数据123就应该输出的Ì123/Î。这样的条码扫描枪就能扫了。快快试一下吧。5、在EXCEL进行公式运算中,你如果用MID函数来取值,再用VLOOKUP来查找的话,就要注意了,因为用MID函数取的值不是真正数据的实值,需要这样用,如MID(G2,2,1)/1,但如果是字母的话,这个公式又得会出错。怎么办,我用了IFERROR函数,也就是出错的时候返回MID(G2,2,1)的值。另MID(G2,2,1)的值是不区分大小写的,这也是头大的事,如果你要区分的话,那又得加其他的函数。C

8、ODE128编码表ValueCodeACodeBCodeCValue0SP001!!112""223##334$$445%%556&&667''778((889))9910**101011++111112,,121213--131314..141415//151516001616171117171822181819331919204420202

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。