2014-10-28 2 views
1

Можно ли иметь такую ​​функцию:Можно ли иметь функцию в другой функции

Function First(test1 as string) 
second 'Hello' 
.... 
    Function second(test2 as string) 
    .... 
    End Function 
... 
End Function 

Я стараюсь делать это сделать, но Befor конец второй функции я получаю эту ошибку: Expected End Function

+1

Нет, но вы можете поставить second() перед First() – Seb

+0

В VBA нет вложенных функций –

ответ

1

Как Алекс говорил, что вы не можете вложить функции. Вы можете объявить объявления функций отдельно и получить желаемый результат.

Function second(test2 as string) 
    .... 
End Function 

Function First(test1 as string) 
    second 'Hello' 
    .... 
End Function 

Функция должна быть объявлена ​​до ее вызова, поэтому у вас есть вторая перед первой.

0

Если вы хотите иметь вложенную функцию, это свидетельствует о том, что то, что вы действительно ищете, - это класс с частной функцией. Я предполагаю, что вы хотите сделать это, чтобы вторая функция не была видна за пределами первой. Это касается правильного обзора.

Добавить модуль класса и объявить функцию сначала как общедоступную.

Public Function First(test1 as string) 
    First = Second(test1) 
End Function 

Private Function Second(test2 as String) 
    "Hello there" 
End Function 

Это инкапсулирует логику и Second не будут видны вне класса он принадлежит.

Смежные вопросы