单元格中的整个字符串不分裂

时间:2016-06-24 16:52:06

标签: arrays excel vba excel-vba

我在vba中运行此代码,我希望整个单元格在新工作表中分成一个数组,但我无法将其拆分为单元格中的所有内容,如下图所示。我想将它拆分成一个新单元格和一个新数组,这样我就可以搜索该数组中的关键字。请查看代码,看看可以做些什么。

由于



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​




enter image description here

1 个答案:

答案 0 :(得分:1)

无法从您的示例中判断您的手机是否使用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:=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