VBA将细胞范围传递给功能

时间:2014-09-26 21:19:52

标签: excel vba excel-vba

首先让我说我已经使用VBA大约2个小时。
我是一个Java人,我对VBA一无所知。

我想要的是编写一个Excel函数,它将范围的单元格分隔符作为参数,然后返回指定的那些单元格的串联分隔符。

示例 concatenateRange(B1:D1,&#34 ;;&#34;)将返回等于= B1&amp;&#34 ;;&#34;&amp; C1&amp;&#34;;&#34;&amp; D1 < / p>

这是我的代码(不起作用)

Function concatenateRange(rng As Range, delimiter As String)

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

    concatenateRange = str

End Function

我尝试使用上述功能时得到的错误是&#34;参数不是可选的&#34;

1 个答案:

答案 0 :(得分:1)

您已在内置VBA函数Str()中定义了变量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