在单元格中的整个string不分裂

我在VBA中运行这个代码,我想整个单元格分成一个新的工作表中的数组,但我不能得到它拆分单元格中的所有内容,如下图所示。 我想要它分裂一个新的单元格和一个新的数组,所以我可以search关键词在该数组中。 请看代码,看看能做些什么。

谢谢

Sub SplitWithFormat() Dim R As Range, C As Range Dim i As Long, V As Variant Set R = Range("d1", Cells(Rows.Count, "d").End(xlUp)) For Each C In R With C .TextToColumns Destination:=.Offset(0, 1), DataType:=xlDelimited, _ consecutivedelimiter:=True, Tab:=False, semicolon:=True, comma:=False, _ Space:=True, other:=False .Copy Range(.Offset(0, 1), Cells(.Row, Columns.Count).End(xlToLeft)).PasteSpecial xlPasteFormats End With Next C Application.CutCopyMode = False End Sub​ 

在这里输入图像说明

不能从你的例子告诉你的单元格是用CR-LF还是用LF来包装的。

假设这只是一个换行,这应该工作:

replace这一行

  .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 As Variant Dim rge As Range Dim intCol As Integer

.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