100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 使用Excel条码控件碰到的问题及解决办法

使用Excel条码控件碰到的问题及解决办法

时间:2020-06-14 02:56:12

相关推荐

使用Excel条码控件碰到的问题及解决办法

iamlaosong文

在使用Excel条码过程中碰到几个难以解决的问题,有的问题又因为没有及时发现导致浪费了很多时间和耗材,用户意见也很大。这些问题出现的原因是什么,目前还不知道,所以解决办法也只是一些变通的办法。本文最后有条码使用工具下载链接,可以查看源码学习。现将问题及解决办法总结如下:

1、条码宽度和数据显示问题

条码下方可以显示数据(ShowData=1),当数据字符串较长时,code39条码比较宽,显示没什么问题,控件大小和条码大小比较一致,就是条码太宽了,扫描不方便。code128条码采用压缩编码,宽度比较窄,扫描方便。实际使用时,控件占用的宽度比较大,实际的条码要小得多,这还没什么,关键是下方的数据宽度大于条码宽度,而且数据显示不全,前面给截掉了。测试发现,19位以下,显示没有问题。长度达到20位的时候,只能显示19位,达到30位的时候显示27位。在没有找到解决办法之前,只好不显示数据,再在下方添加一个文本框显示数据。如下图,中间的数字就是条码自带的,code128显示不全;code39则没有问题:

code128

code39

实际使用发现,条码控件尽管可以设置不显示数据,但位置还是占着,所以要想条码和数字位置合适,就需要将文本框置于顶层,再靠近条码,调整到适当位置即可。设计界面文本框内容被条码覆盖了一部分,如下图:

但打印后的效果很好,没有覆盖的问题,如下图:

可奇怪的是用户那边却不是这样,用户那边是所见即所得,所以位置要调开才行。

Code128码与Code39码都是常用的条码类型,都广泛运用在企业内部管理、生产流程、物流控制系统方面。不同的在于Code 128比Code 39能表现更多的字符,单位长度里的编码密度更高。当单位长度里不能容下Code 39编码或编码字符超出了Code 39的限制时,就可选择Code 128来编码。所以Code 128比Code 39更具灵性。

而且CODE128码支持数字、字母和符号,支持的字符比较灵活,在同样长度的条码中可容纳的字符长度较长(高密度),条码长度与字符串长度无明显的敏感性,所以CODE128码是企业内部管理系统最为广泛使用的条码码制。

2、批量打印自动更新问题

批量打印时条码需要跟随单元格中的数据变化才对,使用中发现单元格数据变化后条码没有变化,或者刷新后(ActiveSheet.BarCodeCtrl1.Refresh)表面上看也变化了,只是打印的时候没有变化。打印时屏幕上显示的条码倒是在变,但打印出来的条码都是同一个条码。解决办法是改变控件大小,比如高度,如下:

ActiveSheet.BarCodeCtrl1.Height = ActiveSheet.BarCodeCtrl1.Height + 1

ActiveSheet.BarCodeCtrl1.Height = ActiveSheet.BarCodeCtrl1.Height - 1

条码应用效果,可以自动更新。

此法使用中碰到条码越来越小的问题,所以下面的解决办法更好。

3、条码越来越小的问题

采用上面的方法解决了条码不能自动更新的问题,测试也没问题,但客户使用的时候发现,数据量很大的时候,运行到后来发现条码高度越来越小,最后就是0了,然后就报错了,似乎那个高度加1没起作用,一直在减1,同样的数据我测试却没有发现问题,难道是我的电脑太老了!问题出得莫名其妙,解决办法就是增加冗余,每次更新高度前重新设置一下高度,这样问题倒是没有再出现:

ActiveSheet.BarCodeCtrl1.Style = 7

ActiveSheet.BarCodeCtrl1.Height = 24.75

ActiveSheet.BarCodeCtrl1.Width = 323.25

或者用下面的办法,也没有问题:

hh = ActiveSheet.BarCodeCtrl1.Height

ActiveSheet.BarCodeCtrl1.Height = hh - 1

ActiveSheet.BarCodeCtrl1.Height = hh

4、打印速度

这个问题实际上和条码关系不大。对账单的打印是生成一张打印一张,所以每张单据都要发送打印命令(ActiveSheet.PrintOut),因此,电脑和打印机握手就会占用很多时间,大批量打印时,速度就会让人难以忍受,好在版Excel可以直接将打印结果输出为PDF文件,然后将这些单个的PDF文件合并后打印,速度就大大提高了。参见:解决Excel中VBA批量打印速度慢的问题

本文使用的条码打印工具下载:中行对账单打印工具

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。