相关疑难解决方法(0)

获取当前VBA功能的名称

对于错误处理代码,我想获取发生错误的当前VBA函数(或子)的名称.有谁知道如何做到这一点?

[编辑]谢谢大家,我曾希望存在一个无证的技巧来自我确定功能,但这显然不存在.猜猜我会继续使用我当前的代码:

Option Compare Database: Option Explicit: Const cMODULE$ = "basMisc"

Public Function gfMisc_SomeFunction$(target$)
On Error GoTo err_handler: Const cPROC$ = "gfMisc_SomeFunction"
    ...
exit_handler:
    ....
    Exit Function
err_handler:
    Call gfLog_Error(cMODULE, cPROC, err, err.Description)
    Resume exit_handler
End Function
Run Code Online (Sandbox Code Playgroud)

ms-access vba

30
推荐指数
5
解决办法
4万
查看次数

处理数学函数中的错误

数学相关函数中错误处理的好习惯是什么?我正在建立一个专门的函数库(模块),我的主要目的是让调用这些函数的代码更容易调试 - 而不是制作一个闪亮的用户友好的错误处理工具.

下面是VBA中的一个简单示例,但我也有兴趣听取其他语言的说法.我不太确定我应该在哪里返回错误消息/状态/标志.作为额外的论点?

Function AddArrays(arr1, arr2)
    Dim i As Long
    Dim result As Variant

    ' Some error trapping code here, e.g.
    ' - Are input arrays of same size?
    ' - Are input arrays numeric? (can't add strings, objects...)
    ' - Etc.

    ' If no errors found, do the actual work...
    ReDim result(LBound(arr1) To UBound(arr1))
    For i = LBound(arr1) To UBound(arr1)
        result(i) = arr1(i) + arr2(i)
    Next i

    AddArrays = result
End Function
Run Code Online (Sandbox Code Playgroud)

或类似以下内容.该函数返回一个布尔"成功"标志(如下例所示,如果输入数组不是数字等,则返回False),或者某个其他类型的错误号/消息.

Function AddArrays(arr1, arr2, result) As …
Run Code Online (Sandbox Code Playgroud)

math error-handling vba

3
推荐指数
1
解决办法
2129
查看次数

标签 统计

vba ×2

error-handling ×1

math ×1

ms-access ×1