VBA:拆分和连接阵列&;串

VBA:拆分和连接阵列&;串,vba,excel,join,split,Vba,Excel,Join,Split,我处理的是一组细胞,看起来像这样: Cells.AutoFilter Field:=4, Criteria1:= Array(MfrArray) 我想做的是过滤每个国家的国家栏,然后把每个制造商的,并把他们加在一起,这样我就可以在另一个工作簿中过滤它们 所以基本上,我想加入(m1,m2,m3)这就是我尝试的方式: xRange是“制造商缩写”栏。我还有如果xCell。。。“”然后,因为在xRange Dim tempMfr As String Dim temp2Mfr As String D

我处理的是一组细胞,看起来像这样:

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

我想做的是过滤每个国家的国家栏,然后把每个制造商的,并把他们加在一起,这样我就可以在另一个工作簿中过滤它们

所以基本上,我想
加入(m1,m2,m3)
这就是我尝试的方式:

xRange
是“制造商缩写”栏。我还有
如果xCell。。。“”然后
,因为在
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

一旦我解决了这个问题,我计划在另一个工作簿中使用类似以下内容的搜索:

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


非常感谢您的帮助。

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

这是不允许的,也是导致您出错的原因

您可以这样做:

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

您根本不需要Join()。

有什么问题吗?您收到了什么错误?类型不匹配;编辑原稿。但即便如此,我的方法仍然不起作用。我们两个解决方案都有一个错误。你需要
stringArray(Ubound(stringArray)+1)
,我需要去掉
0到
。但这似乎已经做到了。非常感谢你。改变这一点,你就会得到一个答案:)这就是我在没有Excel的情况下接听电话的结果…;)修正了输入错误。当我进入该范围的下一个条目时,如何清除数组并重置维度?我正在尝试使用
擦除stringArray
重拨stringArray
但擦除没有维度可供使用,并且重拨会产生语法错误。请尝试将数组的初始声明更改为Variant,如:Dim stringArray As Variant。请注意,没有括号。然后,通过将数组设置为Split()函数的结果,可以在变量中动态创建数组。这应该是第一次起作用。。。后来每次都是。嘿,又来了。我一直在四处寻找,但找不到任何有用的东西。我需要为使用此代码生成的数组筛选一列。我正在尝试使用
Cells.AutoFilter字段:=14,Criteria1:=stringArray,运算符:=
,但我不知道运算符应该是什么。我的问题的一个例子是,当列中的内容实际上是“Tawm”时,数组中的内容可能是“Ta”。我在想类似于
操作符:=xlContains
的东西,但那是不可能的。你知道我怎么做吗?我只是希望它就像我在“Ta”中输入,然后选择自动筛选找到的所有选项。