2014-10-28 148 views
1

是否有可能有这样的功能:是否有可能有一个函数在另一个函数

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

我尽量不这样做,但以前生产第二函数结束时,我正在此错误: Expected End Function

+1

不,但您可以在第一个()之前放第二个() – Seb 2014-10-28 12:49:56

+0

VBA中没有嵌套函数 – 2014-10-28 12:51:46

回答

1

就像Alex在说你不能嵌套函数。您可以分别声明函数声明并仍然获得所需的结果。

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

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

函数需要在被调用之前声明,这就是为什么你有第二个之前的第二个。

0

如果你想要嵌套函数,这表明你真正想要的是一个具有私有函数的类。我假设你想这样做,以便第二个函数在第一个函数之外是不可见的。这是关于适当的范围。

添加一个类模块并首先声明函数为public。

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

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

这将封装逻辑,并且Second在它所属的类之外将不可见。

相关问题