Давайте сократим ваш Sub до самого базового уровня:
Sub VeryBasic()
Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.GoTo "Location"
End Sub
Теперь, посмотрите, как этот код называет себя ?Если мы расширим его на 1 уровень, мы получим это:
Sub VeryBasic()
'Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.GoTo "Location"
'Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.GoTo "Location"
Application.GoTo "Location"
End Sub
Разверните его на 2 уровня:
Sub VeryBasic()
'Application.Run "VeryBasic"
'Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.GoTo "Location"
'Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.GoTo "Location"
Application.GoTo "Location"
'Application.Run "VeryBasic"
'Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.GoTo "Location"
'Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.GoTo "Location"
Application.GoTo "Location"
Application.GoTo "Location"
End Sub
Надеемся, вы увидите, что этот код будет продолжать получатьвсе больше и больше, фактически не делая ничего , кроме добавления еще одной своей копии в «Стек» для запуска.В конце концов, вашему стеку не хватит места (или вашему компьютеру не хватит памяти), и вы получите ошибку переполнение стека .