xymxydt 发表于 2016-7-13 15:45:46

有没有人搞过CODE128的lisp,EXCEL用VBA可以实现的

本帖最后由 xymxydt 于 2016-7-13 16:19 编辑

现在的图纸很想能够自动生成BARCODE128B条码,但是不懂LISP,制作不出来

BARCODE128B有字体能够直接调用,但是需要在字符串前面增加初始码,在尾部增加校验码和结束码,这样一来就头大了,有没有人有兴趣搞一个出来?

我想要的结果就是,图框中有三个属性DR1-DR2-DR3(条码中包含两个“-”,即:"ABC-1234-cde")
这三个值有任何一个变动,条码自动重新生成一次。这样以后出图交图都可能通过BARCODE扫码枪进行操作了。

我有BARCODE128字体和VBA的语句算法

以下是在EXCEL中VBA里的计算方法:
Function Code128B(tar As Range)   '128B码:ChrW(204).
Dim s$, i%, ss$, j%, curR%, checkB%
curR = tar.Row
s = tar.Value
checkB = 1'开始位的码值为104 mod 103 =1
For i = 1 To Len(s)
    ss = Mid(s, i, 1)
    j = Asc(ss) '没过滤无效字符,比如汉字.
    If j < 135 Then
      j = j - 32
    ElseIf j > 134 Then
      j = j - 100
    End If
    checkB = (checkB + i * j) Mod 103   '计算校验位
Next
If checkB < 95 And checkB > 0 Then'有的资料直接求103的模,解说不充分,因为有的校验位超过127时,系统会"吃"掉它们(连带休止符).
    checkB = checkB + 32
ElseIf checkB > 94 Then '字体设置时,个别字模被定义了2个值.观察字体文件时能发现.
    checkB = checkB + 100
End If
Code128B = ChrW(204) & s & IIf(checkB, ChrW(checkB), Chr(32)) & ChrW(206)'ChrW(32)无法正确返回
End Function

xymxydt 发表于 2016-7-13 15:54:31

我现在可能通过EXCEL中输入图号,得到BARCODE码后,粘贴到图形中然后得到BARCODE128条形码,但是这样每一张图纸都要复制粘贴一次,工作量大,而且容易出来条码与图形不能对应的情况,所以期望高手能出手搞一个LISP出来
附件是EXCEL文件,需要启动安全宏才能正常使用,而且需要使用CODE128字体
页: [1]
查看完整版本: 有没有人搞过CODE128的lisp,EXCEL用VBA可以实现的