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

我有一些领域需要分成不同的单元格。 它们的格式如下:

使命号码21 0 21

特派团的号码5 1 6

所需的输出将是4个独立的单元格。 第一个包含string“Numbers on Mission”中的单词,随后的单元格将具有每个数字,这是由一个空格确定的。 因此,对于第一个例子来说,要提取的数字是21,0,21。每个数字都将位于string值旁边的自己的单元格中。 第二,5,1,6。

我尝试使用拆分函数,但不知道如何针对具体的数字,并根据空格分隔他们确定数字。

与您的第一个案例(使命号码)相关,简单的解决scheme可能如下所示:

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 

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

除非我忽略了一些东西,否则根本不需要VBA。 你有没有尝试过“文本到列”选项? 如果您select包含您想要拆分的信息的单元格,然后转到数据 – >文本到列。 在那里,你可以select“分隔”,并select一个空格作为分隔符,这将分割你的数据到多个单元格,按空间分割。

编辑:只是意识到,也将分裂你的string。 在这种情况下,当您处于“文本到列”的第三部分时,请select一个非数据格的非索引单元格。 (如果你的数据是在A1中,selectB1作为目的地,那么它会把分割信息放到那里,然后把文本列与类似=B1&" "&C1&" "&D1

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

  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