Ошибка выполнения 13 на VBA с использованием ElseIf / If / Else - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть код, который должен вызывать другие макросы и применяться в зависимости от имени листа: я получаю ошибку

Ошибка времени выполнения '13': несоответствие типов

в строке If sht.Name = "NB12" Or "NB15" Then, что, как я полагаю, будет продолжаться в моем коде. Что я сделал не так?

Sub Specify_test2()


    Dim Fun As String
    Dim sht As Worksheet

    For Each sht In Worksheets
        'Select Case sht.Name
            If sht.Name = "NB12" Or "NB15" Then
                Call limits_Alluvium
            ElseIf sht.Name = "NB24" Then
                Call limits_BOCOBOML_GFA
            ElseIf sht.Name = "NB16" Or "NB17" Or "NB19" Or "NB20" Or "Bore 31" Then
                Call limits_BOCOBOML_MIA
            ElseIf sht.Name = "Bore 47" Or "Bore 48" Then
                Call limits_FracturedRock_GFA
            ElseIf sht.Name = "Bore 4" Or "Bore 4a" Or "Bore 40" Then
                Call limits_FracturedRock_MIA_West
            ElseIf sht.Name = "Bore 30" Then
                Call limits_FracturedRock_MIA_East
            Else
                Call limits_Monitoring_bores
End If
        'End Select
    Next sht

End Sub

1 Ответ

2 голосов
/ 11 февраля 2020

Это потому, что когда вы используете Or, код не ссылается на первое заданное вами условие, поэтому вам нужно снова указать Sheet. т.е.

If sht.Name = "NB12" Or sht.Name = "NB15" Then

вместо

If sht.Name = "NB12" Or "NB15" Then

То же самое относится к каждой строке, где вы проверяете более одного условия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...