2014-09-26 88 views
0

讓我開始說我已經使用了VBA約2小時。
我是一個Java人,對VBA一無所知。VBA將單元格的範圍傳遞到函數中

我要的是寫一個Excel函數,將採取單元格區域的和分隔符作爲參數,然後返回這些細胞的串聯與指定的分隔符。

示例 concatenateRange(B1:D1,「;」)會返回等價的= B1 &「;」 & C1 &「;」 & D1

這裏是我的代碼(不工作)

Function concatenateRange(rng As Range, delimiter As String) 

    str = "" 
    For Each cell In rng 
     str = str & delimiter & cell 
    Next 

    concatenateRange = str 

End Function 

我得到的,當我嘗試使用上述功能的錯誤是「參數不可選」

+0

@johnzilla已經給出了一個答案,我同意*海峽*是一個內置的* VBA功能*,但你可以[檢查了這一點(http://stackoverflow.com/questions/25628511/exel-concatenate-many-columns/25635231#25635231)。這提出了各種獲得你想要完成的方法。 – L42 2014-09-26 21:46:43

回答

1

你定義的變量打包內置的VBA函數Str()。 VBA不喜歡這個。

這工作得很好:

Public Function concatenateRange(rng As Range, delimiter As String) 

    Str1 = "" 
    For Each cell In rng 
     Str1 = Str1 & delimiter & cell 
    Next 

    concatenateRange = Str1 

End Function 
+0

但是你一開始就會得到一個額外的分隔符 – 2014-09-26 21:26:03

相關問題