Как показать все ошибки, если они есть, если нет, то показать окно без ошибок - PullRequest
1 голос
/ 10 июня 2019

Я хочу показать MsgBox с ошибками с соответствующими образцами.Если не показывать другой MsgBox без сбоев.

Я чувствую, что я почти на месте, но что-то мешает.

Если я помещаю MsgBox в цикл, MsgBox появляется более одного раза, если я поставлюон показывает как MsgBox «сбои», если таковые имеются, и «сбоев нет»

Как я могу показать только один из них с (оператором If), и, конечно, показать один раз.Либо окно, отображающее все ошибки, либо поле, показывающее, что их нет.

Код, который я запустил:

Sub Box()
Dim x As Long
Dim fails As String
'Dim passes As String

With Sheet2
    For x = 2 To 8
        If .Range("E" & x).Value > 0.24 Then
        fails = fails & ", " & .Range("A" & x)
        MsgBox "Failed Strut: " & fails
        ElseIf .Range("E" & x).Value < 0.24 Then
        passes = "There are no fails"
        MsgBox passes
        End If
    Next x
End With

'Other attempts
'MsgBox passes
'fails = Right(fails, Len(fails) - 2)
'MsgBox "Failed Strut: " & fails

End Sub

1 Ответ

3 голосов
/ 10 июня 2019

Вам нужно указать переменную fails диапазонами, которые вы хотите показать, и затем проверить, является ли ваша переменная пустой или нет. Кроме того, нет необходимости указывать переменную passes, поскольку она всегда будет одинаковой:

Option Explicit
Sub Box()
    Dim x As Long
    Dim fails As String
    'Dim passes As String

    With Sheet2
        For x = 2 To 8
            If .Range("E" & x).Value > 0.24 Then
                If fails = vbNullString Then
                    fails = .Range("A" & x)
                Else
                    fails = fails & ", " & .Range("A" & x)
                End If
            End If
        Next x
    End With

    'Here you check wether you send one message or the other
    If Not fails = vbNullString Then
        MsgBox "Failed Strut: " & fails
    Else
        MsgBox "There are no fails"
    End If

    'Other attempts
    'MsgBox passes
    'fails = Right(fails, Len(fails) - 2)
    'MsgBox "Failed Strut: " & fails

End Sub

Наконец, правильная установка отступа для вашего кода облегчает его чтение.

...