按单元格中的数字拆分单元格

时间:2015-06-02 14:51:56

标签: excel vba split cells

我有一些字段需要拆分成不同的单元格。它们采用以下格式:

  

Mission 21 0 21上的数字

     

Mission 5 1 6上的数字

所需的输出将是4个单独的单元格。第一个将包含字符串中的单词" Numbers on Mission"并且随后的单元格将具有每个数字,其由空格确定。因此,对于第一个示例,要提取的数字将是21,0,21。每个将在字符串值旁边的自己的单元格中。而对于第二个:5,1,6。

我尝试使用拆分功能但不确定如何专门定位数字,并根据分隔数字来识别数字。

3 个答案:

答案 0 :(得分:1)

与你的第一个案例(使命上的数字)相关,简单的解决方案如下所示:

Sub SplitCells()
Const RowHeader As String = "Numbers on Mission"
Dim ArrNum As Variant
ArrNum = Split(Replace(Range("A1"), RowHeader, ""), " ")
For i = 1 To UBound(ArrNum)
    Cells(1, i + 2) = ArrNum(i)
Next
Cells(1, 2) = RowHeader
End Sub

同样的逻辑适用于您的第二种情况。希望这可能有所帮助。

答案 1 :(得分:0)

除非我忽视某些事情,否则你根本不需要VBA。你有没有尝试过" Text to Columns"选项?如果您选择包含您要拆分的信息的单元格,请转到数据 - >文本到列。在那里,你可以选择"分隔"并选择一个空格作为分隔符,它将您的数据拆分为多个单元格,按空格分隔。

编辑:刚刚意识到这也会分裂你的字符串。在这种情况下,当您处于“文本到列”的第3部分时,请选择不包含数据的单元格的脱色单元格。 (例如,如果您的数据在A1中,请选择B1作为目的地,然后将拆分信息放在那里。然后将文本列与=B1&" "&C1&" "&D1

组合在一起

答案 2 :(得分:0)

我能够使用以下内容正确分割值:

 If i.Value Like "*on Mission*" Then

x = Split(i, " ")

    For y = 0 To UBound(x)

    i.Offset(0, y + 1).Value = x(y)

    Next y

End If