缺少使用 Brother Label Solutions SDK 的参考

缺少使用 Brother Label Solutions SDK 的参考

我用 VBA 编写了一个 Excel 插件,它采用格式化的地址列表,并使用 Brother“标签解决方案”SDK 与我的 Brother QL-570 标签打印机进行通信:http://www.brother.com/product/dev/label/bpac/download/bpaccci156/index.htm

我之前在安装了 SDK 的另一台计算机上运行过此代码,并且运行正常。现在在我的计算机上使用它却不起作用。我的计算机运行的是 Windows 10,并且装有 Excel 2010。运行该插件时出现此错误: “运行时错误 249,ActiveX 无法创建对象。”

据我所知,此错误表示缺少文件。但是,从 Developer 中的 Tools -> References 下查看,我可以看到“Brother b-PAC 3.1 类型库”安装成功后会进行检查。因此我不确定问题是什么。

最后,我不认为代码是问题所在,因为这在另一台电脑上运行良好,无论如何都可以找到下面的子代码以供参考。

造成此错误的潜在原因有哪些?

我的代码:

错误发生在第五行:“Set objDoc = CreateObject(“bpac.Document””)。

Public Sub PrintLabels(ByVal Control As IRibbonControl)

Dim numRows As Integer

numRows = GetRowCount(2)

Dim objDoc As bpac.Document
Set objDoc = CreateObject("bpac.Document")

For i = 1 To numRows
    Dim templateFile As String
    Dim mailService As String
    mailService = ActiveSheet.Cells(i + 1, 11).Text
    If mailService = "1" Then
        templateFile = labelTemplateFile1st
    ElseIf mailService = "2" Then
        templateFile = labelTemplateFile2nd
    Else
        templateFile = labelTemplateFile
    End If
    If objDoc.Open(templateFile) Then
        Dim printers() As Variant
        printers = objDoc.Printer.GetInstalledPrinters()

        Dim installedPrinterName As Variant
        installedPrinterName = printers(0)

        objDoc.SetPrinter printers(0), True
        objDoc.StartPrint "Label", bpoDefault 'Sets label cutting to default value.

        objDoc.GetObject("ORDERNUM").Text = ActiveSheet.Cells(i + 1, 1).Text
        objDoc.GetObject("NAMDRESS").Text = ActiveSheet.Cells(i + 1, 2).Text
        objDoc.GetObject("ORDERDETS").Text = ActiveSheet.Cells(i + 1, 3).Text

        objDoc.PrintOut 1, bpoDefault
        objDoc.EndPrint

        objDoc.Close
    Else
        MsgBox objDoc.ErrorCode
    End If
Next i
End Sub

答案1

尽管这是一篇旧帖子,但它是我在谷歌搜索此问题时得到的第一个结果。

我发现它与我的 32 位版本的 Microsoft Office 有关,而我在 64 位操作系统上运行它。

为了解决我的问题,除了 64 位版本外,我还安装了 32 位版本的 BPac SDK。(我没有先测试卸载 64 位版本)

相关内容