[vba] Может ли функция вызывать саму себя?

программирование excel VBA

Например вот такое:

Sub someFunc()
If p = 0 Then
someFunc
End If
End Sub

Примечание:
Понятное дело, что это рекурсия, на пхп, дажва делалось и не раз ))) но вот этот VBA... выдает ошибку out of stack space. Исправил, но то же самое

Function someFunc(n As Integer)
If p = 0 Then
someFunc
End If
End Function

Примечание:
Да, согласен, что бесконечная, это неудачный пример. будем считать, что "p" у нас глобальная
Ответы:
может может... как сказал _Shaman_ (Рачехан Пенчекряк) это рекурсия... Похоже на бейсик и да он так умеет
это рекурсия!
и она у вас походу бесконечная... всю память забирает
Function someFunc(n As Integer)
If p = 0 Then
 someFunc(n)
End If
End Function
Посмотрите здесь на сайте Самизнаетекого хороший пример по использованию рекурсии в vba
по генерации перестановок букв в строке:


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.