excel宏中的运行时错误424

Posted

技术标签:

【中文标题】excel宏中的运行时错误424【英文标题】:Run time error 424 in excel macros 【发布时间】:2017-08-15 01:46:51 【问题描述】:

我是 excel 宏的新手,我正在创建一个宏,它需要格式化单元格并为 A 列生成条形码。创建了一个函数 Code128() 以将字符串转换为给定的条形码在blog 中,它工作正常。

我在下面创建的宏中使用它们

 With ActiveSheet.PageSetup
 .PrintTitleRows = "$1:$1"
 .PrintGridlines = True

 .Orientation = xlLandscape
 .PaperSize = xlPaperA4

 .Zoom = False
 .FitToPagesWide = 1
 .FitToPagesTall = False

End With

Columns("A").ColumnWidth = 10

For Each Target In Range("A1", Range("A" & Rows.Count).End(xlUp))
If Target.Value <> vbNullString Then
    Target.Value = PERSONAL.XLSB!Code128(Target.Value)
    Target.Resize(, 12).WrapText = True
    Target.Font = "Code 128"
End If
Next

Next

但是当我在 excel 上运行宏时,我得到了运行时错误,例如

【问题讨论】:

我在个人工作簿下创建了函数,如图所示 我认为您不能以这种方式引用个人工作簿......编译器将 PERSONAL.XLSB 解释为 object.method 调用,这是不正确的。等一下…… 不是你不能使用这些功能,你只是不能以你尝试使用它们的方式使用它们。至于它们应该去哪里,它们不能放在一个.CSV文件中,你是把它们放在Book1还是Personal.xlsb中取决于你需要在哪里使用它们。如果它们只是本地辅助函数,则将它们放在 Book1 中。如果它们是您可能在许多不同文件上使用的通用函数,请将它们放入 Personal。 有什么办法可以解决这个问题。 【参考方案1】:

您应该能够使用Application.Run 来评估另一个工作簿中存在的函数。其格式为:

Target.Value = Application.Run("PERSONAL.XLSB!Module2.Code128", Target.Value)

或更笼统地说:

= Application.Run(workbookname$ & "!" & modulename & "." & functionname, args())

除此之外,您可以在 Book1 中 Add a reference to Personal.xlb。

【讨论】:

现在我在Target.Font = "Code 128" 行中得到错误。我需要转换 A 列中值的字体样式。它再次说 Object 不支持此属性或方法。我已经安装了 Code 128 字体,并在 excel 字体下拉列表中看到它们 @user4912134 试试Target.Font.Name = "Code128"

以上是关于excel宏中的运行时错误424的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA:运行时错误 424,需要对象

使用 VBA 退出 Excel 会导致运行时错误 424

EXCEL的VBA ,连接数据库,运行时错误 424 要求对象

在Excel VBA中,如何测试Excel.Range对象变量是否丢失其引用而不会引发运行时错误424 ..?

运行时错误:424:当我尝试达到范围并使用范围数据时所需的对象

将单元格值从 Excel 拉入 Word(运行时错误 429)