Excel条码控件生成的条码,单个打印没有问题,也会随着关联单元格的值变化,可是VBA循环打印时,打印出来的条码总是第一个,后面不再变化,尽管单元格的值在变化。
首先想到的是屏幕更新(Application.ScreenUpdating = True),发现没有用。后来想到调试过程中关联单元格后条码也没有变化,但调整一下条码的大小,条码立马变了,于是在打印前增加下面两行代码(就是把条码高度改大一点,再改回来。呵呵,你不出来,我就折腾死你):
ActiveSheet.BarCodeCtrl1.Height = ActiveSheet.BarCodeCtrl1.Height + 1
ActiveSheet.BarCodeCtrl1.Height = ActiveSheet.BarCodeCtrl1.Height - 1
再测试,问题解决。考虑到后来碰到的条码莫名其妙的越来越小,下面办法应该更好:
hh = ActiveSheet.BarCodeCtrl1.Height
ActiveSheet.BarCodeCtrl1.Height = hh - 1
ActiveSheet.BarCodeCtrl1.Height = hh
当然改其它一些属性估计也可以,下面是条码控件的属性: