У меня есть макрос, который применяет другие макросы к конкретным 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
не связан ни один макрос, правильный макрос будет применен к данному листу. Есть идеи, почему это так?