如何在Excel中基于多个含值单元格生成单个二维码?
在Excel中基于多个单元格生成单个二维码
你可以通过以下VBA代码实现基于多单元格内容生成单个二维码,代码已调整为支持合并选中单元格的内容:
Sub 生成二维码() ' 更新于2018/8/22 Dim 源单元格区域 As Range Dim 放置位置 As Range Dim 条码控件 As OLEObject Dim 单个单元格 As Range Dim 二维码内容 As String On Error Resume Next Set 源单元格区域 = Application.InputBox("请选择要生成二维码的多个单元格", "生成二维码", , , , , , 8) If 源单元格区域 Is Nothing Then Exit Sub Set 放置位置 = Application.InputBox("请选择二维码的放置单元格", "生成二维码", , , , , , 8) If 放置位置 Is Nothing Then Exit Sub Application.ScreenUpdating = False ' 合并选中单元格内容,用换行分隔,可根据需求替换为逗号、空格等分隔符 二维码内容 = "" For Each 单个单元格 In 源单元格区域 二维码内容 = 二维码内容 & 单个单元格.Text & vbCrLf Next ' 添加条码控件并设置为二维码格式 Set 条码控件 = ActiveSheet.OLEObjects.Add("BARCODE.BarCodeCtrl.1") 条码控件.Object.Style = 11 ' Style=11对应二维码类型 条码控件.Object.Value = 二维码内容 ' 复制二维码到目标位置并删除临时控件 ActiveSheet.Shapes.Item(条码控件.Name).Copy ActiveSheet.Paste 放置位置 条码控件.Delete Application.ScreenUpdating = True End Sub
使用步骤:
- 打开目标Excel文件,按下
Alt + F11打开VBA编辑器 - 右键点击当前工作簿,选择「插入」→「模块」
- 将上述代码粘贴到模块窗口中
- 返回Excel界面,通过「开发工具」→「宏」选择「生成二维码」执行,或直接在VBA编辑器中按
F5运行 - 按提示依次选择包含内容的多个单元格、二维码的放置位置即可
注意:此代码依赖Excel的BARCODE控件,若控件未注册,需先完成组件注册才能正常运行。
内容的提问来源于stack exchange,提问作者Denis Cristian Harapcea
相关产品推荐
相关产品推荐

