You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中生成可随单元格修改的动态QR Code?

在Excel中创建动态可更新二维码的解决方案

核心思路

先将需要包含的3-4个单元格内容合并到一个辅助单元格,再通过VBA实现二维码随辅助单元格内容自动更新,替代QR4Office生成的静态图片。


步骤1:整合目标单元格内容

选择一个空白单元格(例如E1),输入合并公式,将需要包含的单元格(比如A1、B1、C1、D1)内容整合。示例公式:

=A1 & "|" & B1 & "|" & C1 & "|" & D1
  • 用|作为分隔符,扫码后可清晰区分各单元格内容;也可换成换行符CHAR(10),需开启单元格“自动换行”。
  • 此单元格内容会随A1-D1的修改自动同步更新。

步骤2:用VBA实现动态二维码生成

  1. 打开开发工具选项卡(未显示的话,在「文件→选项→自定义功能区」勾选“开发工具”),点击「Visual Basic」进入VBE编辑器。
  2. 插入模块:右键工作簿→「插入」→「模块」,粘贴以下代码:
Sub GenerateDynamicQRCode()
    Dim qrCode As Object
    Dim targetCell As Range
    Dim qrText As String
    Dim qrSize As Integer
    
    ' 指定整合内容的单元格(即步骤1的E1)和二维码大小
    Set targetCell = ThisWorkbook.Sheets("Sheet1").Range("E1")
    qrText = targetCell.Value
    qrSize = 100 ' 可按需调整尺寸
    
    ' 清除旧二维码
    On Error Resume Next
    ThisWorkbook.Sheets("Sheet1").Shapes("DynamicQR").Delete
    On Error GoTo 0
    
    ' 生成并插入新二维码
    Set qrCode = CreateObject("Microsoft.QRCode")
    qrCode.Data = qrText
    
    With ThisWorkbook.Sheets("Sheet1").Shapes.AddPicture( _
        qrCode.Picture, LinkToFile:=False, SaveWithDocument:=True, _
        Left:=targetCell.Offset(0, 1).Left, Top:=targetCell.Offset(0, 1).Top, _
        Width:=qrSize, Height:=qrSize)
        .Name = "DynamicQR"
    End With
End Sub
  1. 设置自动触发:右键目标工作表标签(如「Sheet1」)→「查看代码」,粘贴以下事件代码:
Private Sub Worksheet_Change(ByVal Target As Range)
    ' 监控A1-D1的修改,触发二维码更新
    If Not Intersect(Target, Range("A1:D1")) Is Nothing Then
        GenerateDynamicQRCode
    End If
End Sub

步骤3:测试功能

修改A1-D1中任意单元格的内容,辅助单元格E1会自动更新,二维码也会同步重新生成,实现动态更新效果。

注意事项

  • 需启用宏:在「文件→选项→信任中心→信任中心设置→宏设置」中选择“启用所有宏”(注意宏安全风险,仅在信任的文件中使用)。
  • 若Microsoft.QRCode对象不可用,需确保系统安装了对应的组件,或替换为ZXing等第三方VBA二维码库。

内容的提问来源于stack exchange,提问作者DONALD ZIKO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 06:25:06