2014-10-28 204 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在它所屬的類之外將不可見。

相關問題