VBA MsgBox错误438(错误GoTo ErrorHandler)

时间:2015-07-20 18:27:13

标签: excel vba excel-2010

我正在尝试创建一个高质量的ErrorHandler。我得到运行时错误438:

  

Object不支持此属性或方法

这是代码:

function bouncer(arr) {
  return arr.filter(Boolean);
}
bouncer([7, 'ate', '', false, 9]);
// returns ['7','ate','9']

1 个答案:

答案 0 :(得分:1)

像那样,你什么都不做。您正在尝试启动一个字符串链,但这是以一个连接运算符(&)开始的,它不连接到任何“第一”部分,即使它既未分配给变量也未显示为一个对话框。

首先将其显示在MsgBox中:

MsgBox vbNewLine & "Error" & Err.Number & Err.line & Err.Description

或首先将其分配给变量:

Dim errMsg As String
errMsg = vbNewLine & "Error" & Err.Number & Err.line & Err.Description

然后打印出来:

Debug.Print errMsg

或将其记录到单元格

Range("A1") = errMsg

或在MsgBox中

MsgBox errMsg

...并且不要忘记指定你在哪一行引发异常(这里很明显,但并不总是很明显)因为如果不知道代码的哪一点就不可能进行调试抛出异常。

编辑 - 我终于运行了你的代码

所以,我运行你的代码并引发错误,因为对象Err(即抛出的异常)没有属性Line。它可能已被弃用,或者从未存在过。

如果要返回发生错误的行,请使用ERL属性:

MsgBox vbNewLine & "Error" & Err.Number & Erl & Err.Description