Я пытаюсь заставить этот код работать, но не удается из-за завершения с - PullRequest
1 голос
/ 26 февраля 2020

Я получаю

Завершение без без

ошибка, и я не могу найти проблему.

Я попытался добавить else ниже 1-го набора .visible=true безрезультатно. Любая помощь будет оценена!

Sub Owners()

    Sheets("Start").Activate
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> ThisWorkbook.ActiveSheet.Name Then
            ws.Visible = xlSheetHidden
        End If
    Next ws

    With Worksheets("Start")
        Dim stateMatch As Variant
        stateMatch = Application.Match(.Range("B2").Value, Sheets("List").Range("K2:K32"), 0)

        Dim numOwnerMatch As Variant
        numOwnerMatch = Application.Match(.Range("B3").Value, Sheets("List").Range("D2:D3"), 0)

        If IsNumeric(stateMatch) And IsNumeric(numOwnerMatch) Then
            If numOwnerMatch = 1 Then
                Worksheets("1st OwnerStatement").Visible = True
                Worksheets("1st OwnerPPW").Visible = True
            End If
            If numOwnerMatch = 2 Then
                Worksheets("1st OwnerStatement").Visible = True
                Worksheets("2nd OwnerStatement").Visible = True
                Worksheets("1st OwnerPPW").Visible = True
                Worksheets("2nd OwnerPPW").Visible = True
            End If
        End With

End Sub

1 Ответ

1 голос
/ 26 февраля 2020

Попробуй это. Похоже, что вы упустили конец, если рядом с дном. Интервал между вашими группировками может помочь вам в этом, поскольку гораздо легче увидеть, когда IF / WITH / et c открывается и закрывается.

Sub Owners()
    Dim ws As Worksheet
    Dim stateMatch As Variant
    Dim numOwnerMatch As Variant

    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> ThisWorkbook.ActiveSheet.Name Then
            ws.Visible = xlSheetHidden
        End If
    Next ws

    With Worksheets("Start")
        stateMatch = Application.Match(.Range("B2").Value, Sheets("List").Range("K2:K32"), 0)
        numOwnerMatch = Application.Match(.Range("B3").Value, Sheets("List").Range("D2:D3"), 0)
        If IsNumeric(stateMatch) And IsNumeric(numOwnerMatch) Then
            If numOwnerMatch = 1 Then
                Worksheets("1st OwnerStatement").Visible = True
                Worksheets("1st OwnerPPW").Visible = True
            End If
            If numOwnerMatch = 2 Then
                Worksheets("1st OwnerStatement").Visible = True
                Worksheets("2nd OwnerStatement").Visible = True
                Worksheets("1st OwnerPPW").Visible = True
                Worksheets("2nd OwnerPPW").Visible = True
            End If
        End If
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...