excel - 出错时转到在一个模块中工作,但不在另一个模块中

标签 excel vba error-handling

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

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"

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

Object variable or with block variable not set



此外,在第一个模块中,我可以使用表达式 xlFormatFromLeft ,但在另一个模块中,我需要写xlFormatFromLeftOrAbove .

知道为什么会这样吗?

提前致谢。

最佳答案

添加 Option Explicit到每个模块的顶部。

这有几个好处,您将被告知未声明的变量,调试消息将更加量身定制,并且应该突出显示错误行。

在这种情况下,当您运行宏时,未声明变量的行将突出显示。注意这里的变量是在不同的范围内声明的,Workrange可能在一个模块的模块级别声明,但未在另一个模块中声明。

关于excel - 出错时转到在一个模块中工作,但不在另一个模块中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56517659/

相关文章:

vba - 使用 Sheets.Range.Offset 的行上的应用程序或对象定义的错误

excel - 正确处理 VBA (Excel) 中的错误

excel - 基于不同列但相同行中的单元格的条件格式

vba - DragQueryFile 总是返回 0

vba - WorksheetFunction.AverageIf 的运行时错误 '1004'

rest - 在将 ember-data 与 RESTAdapters 一起使用时,如何处理 emberJs 中的 HTTP 错误?

excel - 更改为单元格中重复的粗体文本

xml - VBA 使用 UTF-16 输出到文件

php - 解析错误: syntax error, unexpected ',' not seeing the issue [duplicate]

error-handling - 如何减少处理多行结果返回错误的代码