function与可选参数

我想学习和实现一个可选参数在VBA中的函数。 我试图在给定一个字符或子string分隔的string中分隔值。

Private Function SeperateString(MainString As String, Seperator As String) As String { // Body } 

例如:我想使用分隔符“ – ”或“1/2/3/4/5”使用分隔符“/”来分隔“1-2-3-4-5”。

我将使用Instr和其他函数来编写逻辑。 我的疑问是我想通过一个分隔符,所以我不需要为每个函数都写一个单独的函数,并且如果没有任何东西被传递的话,我们希望“ – ”是默认值。 我可以这样做吗?

假设你想把Separator设置为可选参数,试试这个:

 Private Function SeperateString(MainString As String, _ Optional Seperator As String = "-") As String 'Body SeperateString = "result of function" End Function 

用法:

 result = SeperateString("whatever-it-is") 'uses default separator result = SeperateString("whatever-it-is", "*") 'uses another separator 

https://msdn.microsoft.com/en-us/library/sect4ck6.aspx

 Private Function SeparateString(MainString as String, Optional Separator as String = "-") As String 

哦,这是VBA。 不是{}和不是,但是我相信你知道…

但是我不得不build议,使用Split()可能比编写自己的选项更好。

你正在使用VBA,而不是C#,所以不要使用那些花括号。

input第一行并按Enter键的那一刻,VBE将自动添加End Function

 Private Function SeperateString(MainString As String, Seperator As String) As String End Function 

要使参数可选,请在其之前使用关键字Optional

 Private Function SeperateString(MainString As String, Optional Seperator As String = "-") As String End Function