sandos,
Мне удалось воспроизвести проблему, как вы описали.Добавление команды DoEvents в начале подпрограммы исправило это.Также всегда полезно сопоставлять имена и диапазоны ваших листов с книгой, к которой они принадлежат, например ThisWorkbook.Sheets (1) .Range ("A1").Кроме того, вам не нужны все эти операторы If Endif (если бы вы это сделали, вы бы хотели один длинный If, ElseIf, Elseif, End).В любом случае вы можете игнорировать эти комментарии и просто поставить DoEvents в начале, и это должно работать:
Sub Drop()
DoEvents
With ThisWorkbook
.Worksheets("Sheet" & .Worksheets("Hidden1").Range("A1")).Select
End With
End Sub