Arrays 单元格中的整个字符串未拆分

Arrays 单元格中的整个字符串未拆分,arrays,vba,excel,Arrays,Vba,Excel,我正在vba中运行这段代码,我希望整个单元格在一个新的工作表中分离成一个数组,但我无法让它像下图那样拆分单元格中的所有内容。我想把它拆分成一个新的单元格和一个新的数组,这样我就可以在那个数组中搜索关键字了。请看一下代码,看看能做些什么 谢谢 Sub-SplitWithFormat() 变暗R为范围,C为范围 尺寸i为长,V为变体 设置R=范围(“d1”,单元格(行数,“d”)。结束(xlUp)) 对于R中的每个C 用C .TextToColumns目标:=.Offset(0,1),数据类型:=

我正在vba中运行这段代码,我希望整个单元格在一个新的工作表中分离成一个数组,但我无法让它像下图那样拆分单元格中的所有内容。我想把它拆分成一个新的单元格和一个新的数组,这样我就可以在那个数组中搜索关键字了。请看一下代码,看看能做些什么

谢谢

Sub-SplitWithFormat()
变暗R为范围,C为范围
尺寸i为长,V为变体
设置R=范围(“d1”,单元格(行数,“d”)。结束(xlUp))
对于R中的每个C
用C
.TextToColumns目标:=.Offset(0,1),数据类型:=xlDelimited_
连续delimiter:=True,制表符:=False,分号:=True,逗号:=False_
空格:=真,其他:=假
复制
范围(.Offset(0,1),单元格(.Row,Columns.Count)。结束(xlToLeft))。粘贴特殊的xlPasteFormats
以
下一个C
Application.CutCopyMode=False

端接头​无法从您的示例中判断您的单元格是用CR-LF包裹还是仅用LF包裹

假设它只是一个换行符,那么应该可以:

更换这条线

    .TextToColumns Destination:=.Offset(0, 1), DataType:=xlDelimited, _
    consecutivedelimiter:=True, Tab:=False, semicolon:=True, comma:=False, _
    Space:=True, other:=False
.TextToColumns Destination:=.Offset(0, 1), DataType:=xlDelimited, _
consecutivedelimiter:=True, Tab:=False, semicolon:=True, comma:=False, _
Space:=True, other:=True, Otherchar:=vbLf
用这条线

    .TextToColumns Destination:=.Offset(0, 1), DataType:=xlDelimited, _
    consecutivedelimiter:=True, Tab:=False, semicolon:=True, comma:=False, _
    Space:=True, other:=False
.TextToColumns Destination:=.Offset(0, 1), DataType:=xlDelimited, _
consecutivedelimiter:=True, Tab:=False, semicolon:=True, comma:=False, _
Space:=True, other:=True, Otherchar:=vbLf
如果它实际上是-的组合,则使用以下方法:

.TextToColumns Destination:=.Offset(0, 1), DataType:=xlDelimited, _
consecutivedelimiter:=True, Tab:=False, semicolon:=True, comma:=False, _
Space:=True, other:=True, Otherchar:=vbCrLf
编辑-将拆分单元格转换为数组

在顶部添加新声明

Dim varHorizArray作为变体 暗rge As范围 Dim intCol作为整数

.Copy
命令之前,添加

Set rge = Selection
varHorizArray = rge
使用结果数组的示例,添加到底部

    ' Array returned is two dimensional - 1 row by 7 columns
    For intCol = LBound(varHorizArray, 2) To UBound(varHorizArray, 2)
Debug.Print varHorizArray(1, intCol)
    Next intCol

尝试使用空格作为分隔符拆分
split
。我也会使用split。不过你需要加倍努力。您将使用vbCRLF作为分隔符将单元格拆分为一个数组,然后使用空格作为分隔符拆分每个数组项。感谢这一新行的工作。如何更改偏移量以将数组发送到新工作表,以便搜索其中的字符串?什么数组?我在您的代码中没有看到任何引用数组的内容?如何将拆分的单元格生成数组?更新的答案-应该可以让您启动谢谢,但在拆分单元格后,它会给我一个运行时错误“13”类型不匹配。