Excel VBA调用Brother QL-800打印标签时遇运行时错误91求助
解决Excel VBA调用Brother QL-800打印标签时的Run-Time Error 91问题
问题背景
环境:Windows 11、Office 365
触发错误:Run-Time error 91: Object variable or With block variable not set
前置操作:
- 用P-touch Editor创建lbx模板文件,与Excel工作簿同目录
- 代码已成功创建
bpac.Document对象并打开模板,但设置objProductName等字段值时出错- 已更新打印机固件,尝试修改P-touch Editor的Target为"User Information",传入参数值均正常
排查及解决步骤
1. 核对模板字段对象名称
打开P-touch Editor的lbx模板,选中目标文本框后右键→属性,查看「对象名称」字段,确保该名称与VBA代码中调用的objProductName等名称完全一致(大小写、空格、特殊字符都要匹配)。错误91大概率是因为代码中指定的字段名称在模板中不存在,导致获取对象时返回Nothing。
2. 修正字段对象的获取逻辑
确保代码中获取字段对象的写法正确,示例如下:
Dim objDoc As bpac.Document Set objDoc = CreateObject("bpac.Document") If objDoc.Open(ThisWorkbook.Path & "\your_template.lbx") Then ' 按模板中实际的对象名称获取字段 Dim objProductName As Object Set objProductName = objDoc.GetObject("ProductName") ' 先判断对象是否存在再赋值 If Not objProductName Is Nothing Then objProductName.Text = "测试产品名称" Else MsgBox "未找到指定名称的字段,请核对模板对象名称" End If ' 执行打印并清理对象 objDoc.PrintOut 0, False objDoc.Close End If Set objDoc = Nothing
3. 验证模板打印设置
- 打开P-touch Editor→文件→打印设置,确认「目标」选择的是当前使用的Brother QL-800打印机,而非通用选项;
- 检查模板的纸张尺寸是否与QL-800支持的标签尺寸完全匹配(如常用的62mm宽标签)。
4. 重新注册bpac组件
按下Win+R,输入以下命令(路径根据P-touch Editor实际安装位置调整)回车,重新注册Bpac.dll组件:
regsvr32 "C:\Program Files (x86)\Brother\P-touch Editor\SDK\Bpac.dll"
注册成功后重启Excel,再运行代码。
5. 排查权限问题
- 右键Excel程序,选择以管理员身份运行,避免因权限不足导致无法访问模板或打印机;
- 确保Excel工作簿和lbx模板所在文件夹未设置只读权限。
内容的提问来源于stack exchange,提问作者Del
相关产品推荐
相关产品推荐

