【发布时间】:2019-06-09 19:15:06
【问题描述】:
我不明白为什么下面的代码可以在模块中工作...
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,但在另一个模块中,我需要写xlFormatFromLeftOrAbove。
知道为什么会这样吗?
提前致谢。
【问题讨论】:
-
我敢打赌,
Workrange变量未在其他模块中定义。 -
使用 Find() 时,最好将结果设置为
Range变量,然后在尝试对它进行任何操作之前测试该变量不是Nothing。这样你就可以在没有运行时错误的情况下管理“未找到”。你也不会使用Selection,通常最好避免使用它。
标签: excel vba error-handling