2015-05-26 122 views
1

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

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

// Body 

} 

如:我想单独的 “1-2-3-4-5” 使用分隔符 “ - ” 或 “1/2/3/4/5” 使用分隔符 “/”。

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

回答

5

假设,你要设置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

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

哦,这是VBA 。没有{}也没有//,但我敢肯定你知道...

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

+1

++打我吧:) –

+0

@freeman谢谢,是我知道,那是一个错误。 – Meesha

4

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

您键入的第一线,然后按输入的那一刻,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 
+0

Thanks @MatM :) –