首页 > 解决方案 > 出错时显示单元格地址和消息框并退出宏,如果没有,继续

问题描述

我想首先检查我的 Range 是否有 #NA 错误,然后在退出宏之前显示包含错误的单元格地址。这是我到目前为止所做的。

现在,如果存在错误,我想向MsgBox用户显示错误警告并停止程序的其余部分执行,如果没有,那么我希望它继续执行其余部分该程序

检查 NA 错误:

For Each c In myRange

    If IsError(c) = True Then

        Debug.Print c.Address

    End If

Next c

MsgBox "Check for errors and run gain"

Exit Sub

'continuation of the program

标签: excelvba

解决方案


我认为这可以解决问题:

Dim errorArray()
Dim i As Integer
Dim checkArray As Integer
Dim errorString As String

For Each c In myRange
    If IsError(c) = True Then
        ReDim Preserve errorArray(i)
        errorArray(i) = c.Address
        i = i + 1
    End If
Next c

On Error Resume Next
checkArray = UBound(errorArray)

If Err = 0 Then
    errorString = "An error(s) occured in following cell(s):" & Chr(10)
    For i = 0 To UBound(errorArray)
        errorString = errorString & errorArray(i) & Chr(10)
    Next

    MsgBox errorString

    Exit Sub

End If

Err.Clear
On Error GoTo 0

推荐阅读