VBA 包含失败检查列表的消息框

VBA message box with a list of failed checks

如何创建一个消息框来显示所有未填写的必填字段。

我正在使用一个 table,上面有一个自动过滤器 ("Table11"),只显示失败的检查。

我想将这些翻译成一个消息框,在销售代理尝试创建合同时显示。

Table布局如下:

这假设 CHECK 意味着有问题

Sub ErrorMessage()
Dim strErrMsg As String
Dim cell As Range
If Application.CountIf(-yourfilteredrangehere-), "CHECK") = 0 Then Exit Sub
'no problems to output
For Each cell In Range(-yourfilteredrangehere-)
    'next line assumes checkitem in previous column, change if not
    If cell = "check" Then strErrMsg = strErrMsg & "Please check " & cell.Offset(0, -1) & vbCrLf
Next cell
MsgBox strErrMsg
End Sub

下面的示例遍历 Table11 并创建所有标有 'Check' 的列表,然后如果有项目则显示一条消息。

Public Sub Sample()
Dim LngCounter  As Long
Dim Tbl         As Excel.Range
Dim StrMsg      As String

Set Tbl = ThisWorkbook.Worksheets("Sheet1").Range("Table11")
    For LngCounter = 2 To Tbl.Rows.Count
        If Trim(UCase(Tbl.Cells(LngCounter, 2))) = "CHECK" Then
            StrMsg = StrMsg & Tbl.Cells(LngCounter, 1) & vbNewLine
        End If
    Next
Set Tbl = Nothing

If StrMsg <> "" Then
    MsgBox "The following items need attention before continuing: - " & vbNewLine & vbNewLine & StrMsg, vbOKOnly + vbExclamation, "Data Validation"
End If

End Sub