VBA barcode生成函数
时间: 2023-10-11 15:07:52 浏览: 107
要生成条码,你可以使用Excel VBA编写一个函数。根据你提供的引用,你可以使用以下的VBA函数来生成Code 128B格式的条码:
```vba
Function code128b(Tar As Range)
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
checkB = checkB + 32
ElseIf checkB > 94 Then
checkB = checkB + 100
End If
code128b = ChrW(204) & s & IIf(checkB, ChrW(checkB), Chr(32)) & ChrW(206)
End Function
```
这个函数的参数是一个单元格范围,它将范围内的值作为条码的内容。函数将返回一个字符串,其中包含Code 128B格式的条码。在函数中,我们使用Ascii码将字符转换为对应的条码值,并计算校验位。最后,我们使用ChrW函数将条码值转换为对应的字符。
要使用这个函数,你需要将它放在一个VBA模块中。你可以通过按下`ALT+F11`来打开VBA编辑器,然后在编辑器中插入一个新的模块,并将函数复制到这个模块中。
注意,在使用这个函数之前,你需要确保已经启用了Excel的宏功能。根据引用,你需要将Excel文件另存为后缀为.xlsm的启用宏的Excel工作簿,并在Excel选项的信任中心设置中去掉"文档特性设置"里的勾选项。
现在,你可以在Excel表格中使用这个函数来生成Code 128B格式的条码了。只需在一个单元格中输入内容,并使用`=code128b(A1)`这样的公式来调用函数,其中A1是包含条码内容的单元格的引用。
希望这个方法对你有帮助!如果还有其他问题,请随时提问。
阅读全文