2015-05-26 37 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 :) –