Проблемы с использованием "Case" в VBA - PullRequest
1 голос
/ 03 февраля 2020

У меня есть макрос, который применяет другие макросы к конкретным c листам в зависимости от их имени:

Sub Specify()

    Dim Fun As String
    Dim Sht As Worksheet

    For Each Sht In Worksheets
        Select Case Sht.Name
            Case "NB12", "NB15"
                Application.Run "Groundwater_Macros.xlsm!limits_Alluvium"
            Case "NB24"
                Application.Run "Groundwater_Macros.xlsm!limits_BOCOBOML_GFA"
            Case "NB16", "NB17", "NB19", "NB20", "Bore 31"
                Application.Run "Groundwater_Macros.xlsm!limits_BOCOBOML_MIA"
            Case "Bore 47", "Bore 48"
                Application.Run "Groundwater_Macros.xlsm!limits_FracturedRock_GFA"
            Case "Bore 4", "Bore 4a", "Bore 40"
                Application.Run "Groundwater_Macros.xlsm!limits_FracturedRock_MIA_West"
            Case "Bore 30"
                Application.Run "Groundwater_Macros.xlsm!limits_FracturedRock_MIA_East"
            Case Else
                Application.Run "Groundwater_Macros.xlsm!limits_Monitoring_bores"

        End Select
    Next Sht

End Sub

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

Application.Run "Groundwater_Macros.xlsm!limits_Monitoring_bores"

применяется к нему. При устранении неполадок я обнаружил, что когда с Case Else не связан ни один макрос, правильный макрос будет применен к данному листу. Есть идеи, почему это так?

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