2017-10-12 64 views
0

如何使用可選參數在Visual Basic for aplicationsVBA我如何在功能

下面的代碼接收範圍的字符串,並用分隔符concatonates他們使用可選參數。

Function concat(range, sep) 
mystring = "" 

For Each item In range 
    mystring = mystring & sep & item 
Next 

mystring = Right(mystring, Len(mystring) - Len(sep)) 'removes preceding separator 
concat = mystring 
End Function 

我想九月是一個可選的參數,所以我可以調用CONCAT(範圍),而不是CONCAT(範圍; 「」)

例如在python:

def concat(range, sep="") 
    mystring = "" 
    for i in range: 
     mystring += sep + i 
    mystring = mystring[len(sep)::] 
    return mystring 
+0

斯科特的答案應該解決您的問題,但是,如果你有興趣,'的MyString =右(MyString中,萊恩(MyString的) - 萊恩(SEP))'可以重新寫成'mystring = Mid(mystring,Len(sep)+1)'這可能更接近你用python編寫的東西。 (如果'myString'爲空,使用'Mid'將避免錯誤。) – YowE3K

回答

3

你會想申報類型。

使用關鍵字Optional

Function concat(rng As range, Optional sep As String = "") 
Dim mystring As String 
Dim itm As range 
mystring = "" 

For Each itm In rng 
    mystring = mystring & sep & itm 
Next 

mystring = Right(mystring, Len(mystring) - Len(sep)) 'removes preceding separator 
concat = mystring 
End Function