仅使用 Excel VBA 生成带有控制字符/转义序列的 2D 条形码

问题描述 投票:0回答:1

我昨天发布了一个问题,诚然缺乏一些细节。为了遵循评论的建议,这里尝试做得更好:

我想生成允许使用 VBA 中的控制字符(例如 Tab 或 Return)的 2D 条形码。

由于脚本需要在没有互联网访问的情况下运行,因此无法使用依赖于 API 调用的 VBA 实现。

我在这篇文章中找到了一个从头开始生成条形码的可靠解决方案。

这是我使用的代码的链接,据我了解,许多不同的条形码类型都是其中的一部分。除了粘贴链接之外,您还可以在此 Github 存储库中找到原始代码文件“barcody.bas”

我设法使用以下调用脚本的公式来创建二维码:

=EncodeBarcode(CELL("SHEET"),CELL("ADDRESS"),"Cell Reference / String goes here",51,1,0,2)

参数如下:

  • 51 是二维码选项。其他选项包括 1=EAN8/13/UPCA/UPCE、2=五交错中的两个、3=Code39、50=数据矩阵、51=QRCode
  • 1 用于图形模式。条形码绘制在 Shape 对象上。 0 表示字体模式。我假设您需要安装字体类型。没那么有用。
  • 0 是特定条形码类型的参数。对于 QR_Code,0=低纠错,1=中纠错,2=四分位数纠错,3=高纠错。
  • 2 仅适用于一维码。这是缓冲区。我不确定它到底是做什么的,但可能与一维条形空间有关?

但是,我对控制角色很挣扎。更准确地说,我想连接两个单元格的内容并通过“Tab”按键将它们分开。这是我尝试过的:

=EncodeBarcode(CELL("SHEET"),CELL("ADDRESS"),B1&"^009"&B2,51,1,0,2)

=EncodeBarcode(CELL("SHEET"),CELL("ADDRESS"),B1&"%09"&B2,51,1,0,2)

=EncodeBarcode(CELL("SHEET"),CELL("ADDRESS"),B1&"<CR>"&B2,51,1,0,2)

这些尝试只是将中间的字符串(例如 ^009)直接编码到 QR 码中,以便将其读取为纯文本。

如有任何帮助,我们将不胜感激!要么使用不同的脚本,要么使上面链接的脚本工作会很棒:)

excel vba qr-code barcode
1个回答
0
投票

在 Excel 公式中,使用函数

Char
来实现:

=EncodeBarcode(CELL("SHEET"),CELL("ADDRESS"),B1&Char(9)&B2,51,1,0,2)

VBA 中的等效函数是

Chr

s = activeSheet.Range("B1") & Chr(9) & activeSheet.Range("B2")

但是在 VBA 中,您还可以使用预定义常量,例如

vbTab

s = activeSheet.Range("B1") & vbTab & activeSheet.Range("B2")
© www.soinside.com 2019 - 2024. All rights reserved.