mark 发表于 2006-10-17 08:02:03


Can'不要对此争论。本人'我只是很难理解你的代码。本人'我是个新手
再次感谢杰夫

mark 发表于 2006-10-17 08:05:36


谢谢特洛伊,我'我确信它工作得很好,一旦我理解了代码I'我肯定我'我会更加感激的

mark 发表于 2006-10-17 12:36:30


谢谢特洛伊,我'我确信它工作得很好,一旦我理解了代码I'我肯定我'我会更加感激的
On Error Goto ErrorHandler
这一行是关键。它告诉编译器发生错误时要做什么。在这种情况下,它告诉编译器转到标签“quot;ErrorHandler“;i、 e.程序在紧跟标签的行上继续执行。它类似于声明;错误时继续下一步“;这告诉编译器,如果发生错误,请跳到错误发生后的下一行
请记住,在正常情况下不应使用标签,因为它可能导致代码难以维护。然而,我发现它们对于处理错误非常有用,因为我可以将所有错误处理代码分组在一个位置,而不是将其散落在例程的其余部分
下一位代码是错误处理程序的核心。它由两部分组成,该部分允许程序自行清理(关闭数据库连接、处理对象等)
ExitHere:
        'clean up any references...
        set oPoint = nothing
       
       
        exit function
在;ExitHere“;您将放置要运行的代码,以确保例程正确退出。在正常过程中,您的程序将自然流入;ExitHere“;节和结束优雅。在某些情况下,您可能需要提前终止应用程序,但仍然需要确保所有内容都已清理干净
所以不要用这样的东西:
if oPoint is nothing then exit function
你可以用这样的东西:
if oPoint is nothing then goto ExitHere
当发生错误时,调用例程的最后一部分:
ErrorHandler:
        select case Err.number
        case -22222 '<-This would be where the error that is thrown from the .Find method
                resume next 'resume on the line following where the error was thrown
        case else
                msgbox "Something just happened... " & err.number
        end select
       
        resume ExitHere
end function
当出现错误时,该;On Error Goto ErrorHandler;然后,程序继续在紧跟“0”之后的行上执行;ErrorHandler“;标签在本例中,选择语句。您感兴趣的是捕获find方法生成的错误。这就是为什么我有;案例-2222“;我不知道&#039;我不知道抛出了什么错误号。您将输入生成的错误号,而不是-2222。下一行“;继续下一步“;告诉程序在通过错误的行之后立即跳回该行
这有意义吗?如果你需要更好的解释,请告诉我和我&#039;我看看今晚能做些什么

mark 发表于 2006-10-17 12:49:25


是的,非常感谢
页: 1 [2]
查看完整版本: 调试错误(参数不正确)