VBA:拆分和加入数组&串

时间:2015-07-17 17:28:15

标签: excel vba excel-vba join split

我正在处理一组看起来像这样的单元格:

Cell setup

我要做的是过滤每个国家/地区的“国家/地区”列,然后将每个制作商添加到一起,以便我可以在其他工作簿中对其进行过滤。

所以基本上,我想Join(m1, m2, m3),这就是我想要做的事情:

xRange是“制造商缩写”的列。我也有If xCell... <> "" Then,因为xRange

中的所有条目都没有“上一个制造商缩写”
Dim tempMfr As String
Dim temp2Mfr As String
Dim stringArray() As String
Dim arraytostring As String

For Each xCell In xRange
    tempMfr = xCell

    If xCell.Offset(0, 2) <> "" Then
        temp2Mfr = xCell.Offset(0, 2)
        stringArray() = Split(temp2Mfr, ", ")
        arraytostring = Join(temp2Mfr & stringArray, ", ")
        stringArray() = Split(arraytostring, ", ")


        For x = LBound(stringArray) To UBound(stringArray)
            MsgBox (stringArray(x))
        Next
    End If

Next

由于Join(temp2Mfr & stringArray)创建类型不匹配编译错误,我的问题来自&行。

我也试过了:

ReDim Preserve stringArray(0 to (UBound(stringArray) + 1))
stringArray(UBound(stringArray)) = temp2Mfr

一旦我解决了这个问题,我打算在其他工作簿中使用类似这样的搜索:

Cells.AutoFilter Field:=4, Criteria1:= Array(MfrArray)

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:2)

您正在尝试在Join even执行之前将字符串连接到您的数组。

不允许这是导致错误的原因。

您可以这样做:

Redim Preserve stringArray(Ubound(stringArray) + 1)
stringArray(Ubound(stringArray)) = temp2Mfr

你根本不需要加入()。