Окно сообщения VBA со списком неудачных проверок
Как создать окно сообщения, которое показывает все обязательные поля, которые не были заполнены.
Я использую таблицу с автоматическим фильтром ("Таблица 11"), чтобы отображать только неудачные проверки.
Я хочу перевести их в окно сообщения, которое показывает, когда торговый агент пытается создать контракт.
Расположение таблицы ниже:
2 ответа
Предполагается, что 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
и создает список всех тех, кто помечен "Проверить", затем отображает сообщение, если были элементы.
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