如果出错,请在一个模块中工作,但不能在另一个模块中工作

时间:2019-06-09 19:15:06

标签: excel vba error-handling

我不明白为什么以下代码在模块中起作用...

# rest of codes

但是当我在另一个模块中复制粘贴相同的代码时,会显示以下错误消息:

  

对象变量或未设置块变量

此外,在第一个模块中,我可以使用表达式On Error GoTo NO875 Workrange.Find("875 - COMPLEMENTO IT MANUAL").Select On Error GoTo 0 '*****errorhandler**** NO875: Workrange.Find("280 - MEJORA V. C. ABS.").Offset(0, 1).EntireColumn.Select Selection.insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeft Workrange.Find("280 - MEJORA V. C. ABS.").Offset(0, 1).Value = "875 - COMPLEMENTO IT MANUAL" ,但是在另一个模块中,我需要编写xlFormatFromLeft

知道为什么会这样吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

在每个模块的顶部添加Option Explicit

这有很多好处,您将收到未声明变量的通知,调试消息将更加定制化,并且突出显示错误行。

在这种情况下,当您运行宏时,带有未声明变量的行将突出显示。请注意,变量是在各种范围内声明的,Workrange可能是在一个模块的模块级别上声明的,而在另一个模块中没有声明。