如何自动输入错误值而不是跳过?

自定义X

我有以下代码,只要Gi在工作Articles表中可以找到就可以使用如果Gi找不到,则会收到错误消息。我可以使用跳过错误On Error Resume Next,但我希望能够在此处自动输入一个值。有什么建议吗?我发现文档出错了,但这将停止FOR循环。

LastRow = Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To LastRow
    Range("N" & i).Value = Application.WorksheetFunction.VLookup(Range("G" & i), Sheets("Articles").Range("A2:B5000"), 2, False)
Next i
托斯滕·林克

在这种情况下,您可以将on error goto语句与简历一起使用。在示例代码中,我只是在简历的第一行中捕获了一个错误,所有其他错误均由msgbox处理。

LastRow = Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To LastRow
    On Error Goto ErrorNext
    lookupValue = Application.WorksheetFunction.VLookup(Range("G" & i), _
      Sheets("Articles").Range("A2:B5000"), 2, False)
    On Error Goto ErrorHandler
ResumeHere:
    Range("N" & i).Value = lookupValue
Next i

'-------- All of your other code goes here  ------------

Exit Sub
ErrorNext:
    lookupValue = "Some default value"
    Resume ResumeHere
ErrorHandler:
    MsgBox "Another Error occured: " & error

如果您不希望使用“默认”错误处理程序,则将其替换On Error goto ErrorHandler为On Error Goto0。否则,如果在For循环之后出现错误,则将创建一个奇妙的无限循环。

因此,除了这一行外没有错误处理程序,代码如下所示:

LastRow = Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To LastRow
    On Error Goto ErrorNext
    lookupValue = Application.WorksheetFunction.VLookup(Range("G" & i), _
      Sheets("Articles").Range("A2:B5000"), 2, False)
    On Error Goto 0
ResumeHere:
    Range("N" & i).Value = lookupValue
Next i

'-------- All of your other code goes here  ------------

Exit Sub
ErrorNext:
    lookupValue = "Some default value"
    Resume ResumeHere

基本上没有错误处理程序的代码总是不好的。我亲自编写的所有代码如下所示:

  On Error Goto ErrorHandler
'----------------------------------------

' Here is the real code

'----------------------------------------
EndSub:
  Exit Sub
ErrorHandler:
  '- Do my error handling here, at least show a "better" message
  MsgBox "An error occured: " & Error & " in line " & Erl
  Resume EndSub

我的“真实”代码只是介于两行之间……而这个“真实”代码当然可以包含处理“特殊”错误,只需将其恢复到上面示例中的另一个位置即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过材料ui在自动完成时获取输入框值而不是选定的li标签?

跳过输入流值

如何使Backtab跳过输入

如何在自动bash脚本中发送存储的值而不是别名进行交互式输入

如果输入值不是数字,则应在 c# 中跳过

我从链接(不是表单)的输入中得到错误的值

http传出值输入错误。replace不是函数

错误 - 不是符号张量的输入 - 布尔值

Python类,如何跳过错误的输入并继续下一个输入

如何跳过自动(预置)Debian安装中选择“安装”并点击“输入”的需要?

在自动apt-get安装过程中如何跳过“请继续输入[Enter]”?

如何跳过找到的值

如果输入的值错误,如何返回菜单?

如何跳过标准输入行?

如何通过自动完成而不是文本发布值?

如何在Windows bat脚本中输入自动值(无)?

如何使用 Puppeteer 进行自动值输入发送?

如何在输入类型号上显示自动计算值?

如果输入不是数字,如何打印错误消息?

如果不是IsError(MATCH)没有绕过错误。如何跳过未找到的匹配?

Javascript 如何检查输入值是否为空或不是数字?

如何查看输入的值是否是数字而不是字符?

如何检查用户输入是否不是int值

用户输入多个值并“跳过验证”

jQuery:用鼠标点击而不是键盘自动填充输入值

如何自动在readline()中输入输入,而不是在R中的控制台上手动输入?

验证输入自动完成错误

自动certbot证书-如何跳过问题?

自动更新输入值