gpt4 book ai didi

Excel VBA 错误处理代码

转载 作者:行者123 更新时间:2023-12-04 19:59:34 25 4
gpt4 key购买 nike

我正在创建一个调用各种函数的宏,所有这些函数都返回字符串,并在文本框中显示结果。

我开始阅读良好的错误处理实践,但很难真正理解其中的很多内容。我希望对我将如何处理这件事提出一些意见。

基本上,到目前为止,我为错误处理实现的方法是在我的每个函数的开头放置一个错误处理程序,并进行设置,以便如果该函数发生错误,它会通知用户,但继续计算其他函数。

我的每个功能看起来都与此类似

Function fnGetNumbers() As String

On Error Goto ErrorHandler

// Code to extract numbers from text

If NumbersInText = vbNullString Then
fnGetNumbers = vbNullString
Else
fnGetNumbers = "The numbers in the text are: " & NumbersInText
End If

ErrorHandler:
If Error <> 0 Then
fnGetNumbers = "An error occurred while extracting numbers from the text."
End If
End Function

任何想法和/或建议将不胜感激!

最佳答案

错误处理(在我看来)实际上将归结为您正在编写的宏类型,谁在使用它们,以及谁在调试它们。虽然正确和彻底的错误处理是最佳实践,但如果您是唯一一个调试它们的人,那么您将是唯一需要自定义错误的人。这取决于您的组织,但这取决于您的需要。

话虽如此,关于您的代码的一些注释:

Function fnGetNumbers() As String 
' Instead of returning a string, you can return a boolean and pass in a
' holder string for returning the value. This allows you to check TRUE/FALSE
' instead of checking if a string holds an error.

On Error Goto ErrorHandler

// Code to extract numbers from text

If NumbersInText = vbNullString Then
fnGetNumbers = vbNullString
Else
fnGetNumbers = "The numbers in the text are: " & NumbersInText
End If

Exit Function ' Always have this before your error block.

ErrorHandler:
fnGetNumbers = "An error occurred while extracting numbers from the text."
Exit Function ' While not necessary if
' it is the only error handling block, it can be good practice.
End Function

最好返回某种对调试有用的值。返回一个简单的字符串是没有用的,而返回一个描述错误类型的值更有用。

关于Excel VBA 错误处理代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42418312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com