使用Selection处理错误。找不到正常工作

时间:2014-07-06 04:22:03

标签: excel-vba vba excel

我有一个excel,我必须检查一个帐户是否存在两个帐户列表中的哪一个。否则,我必须去下一个帐户。我正在使用的代码是:

For x=1 to acc_num
Sheets("List1").Select
Range("A1:A100").Select
On Error GoTo CheckList2
Selection.Find(what:=x).Activate
GoTo Found

CheckList2:
Sheets("List2").Select
Range("A1:A100").Select
On Error GoTo NotFound
Selection.Find(what:=x).Activate

Found:
'More Code to execute if account is found

NotFound:
On Error GoTo 0
Next x

当在List1中找不到帐户时,我仍会收到错误弹出窗口:运行时' 91' :对象变量或未设置块。

我无法理解为什么错误处理没有完成它的工作。请帮帮我。

1 个答案:

答案 0 :(得分:0)

看起来你的错误处理程序正在相互影响。在启动新的错误处理过程之前,请使用

清除所有现有错误
On Error GoTo -1

On Error GoTo的MSDN条目位于:http://msdn.microsoft.com/en-us/library/5hsw66as.aspx

Sub test()
Dim x, acc_num As Integer
x = 1
acc_num = 10
For x = 1 To acc_num
Sheets("Sheet1").Select
Range("A1:A100").Select
On Error GoTo CheckList2
Selection.Find(what:=x).Activate
GoTo Found

CheckList2:
Sheets("Sheet2").Select
Range("A1:A100").Select
On Error GoTo -1
On Error GoTo NotFound
Selection.Find(what:=x).Activate

Found:
'More Code to execute if account is found

NotFound:
On Error GoTo -1
Next x
End Sub