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 要求对象
在Excel VBA中,如何测试Excel.Range对象变量是否丢失其引用而不会引发运行时错误424 ..?