我有一些字段需要拆分成不同的单元格。它们采用以下格式:
Mission 21 0 21上的数字
Mission 5 1 6上的数字
所需的输出将是4个单独的单元格。第一个将包含字符串中的单词" Numbers on Mission"并且随后的单元格将具有每个数字,其由空格确定。因此,对于第一个示例,要提取的数字将是21,0,21。每个将在字符串值旁边的自己的单元格中。而对于第二个:5,1,6。
我尝试使用拆分功能但不确定如何专门定位数字,并根据分隔数字来识别数字。
答案 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