我怎样才能把一个单元格内的东西分成几个单元格?

我有这个单元格有一个列表,例如:

[dogs, cats, mice, cows, horses] 

我想分开他们在不同的单元格:

 [dogs] [cats] [mice] [cows] [horses] 

可以这样做吗?

你可以在VBA轻松做到这一点:

 Sub splitString () Dim ran, splitS() As String ran = Range("A1") splitS() = Split(ran, ",") For j = LBound(splitS) To UBound(splitS) Range("B" & (j + 1)) = splitS(j) Next j End Sub 

如果你还想要方括号 ,使用下面的代码:

 Sub splitStringWithSquareBrackets() Dim ran, splitS() As String ran = Range("A1") ran = Right(ran, Len(ran) - 1) ran = Left(ran, Len(ran) - 1) splitS() = Split(ran, ",") For j = LBound(splitS) To UBound(splitS) Range("B" & (j + 1)) = "[" & splitS(j) & "]" Next j End Sub 

使用单元格A1中的数据:

 Sub dural() Dim s As String, i As Long s = Range("A1").Value s = Mid(s, 2, Len(s) - 2) ary = Split(s, ", ") i = 2 For Each a In ary Cells(i, "A").Value = "[" & a & "]" i = i + 1 Next a End Sub 

在这里输入图像说明

这将做到这一点 – 你必须在运行之前select单元格与它假设有两端封闭括号(“[”和“]”)。

我现在得到最好的答案

 Sub ImAmazing() Dim sString As String, i As Long If Trim(ActiveCell.Value) = "" Then Exit Sub ActiveCell.Value = Mid(ActiveCell.Value, 2, Len(ActiveCell.Value) - 2) Do Until InStr(ActiveCell.Value, ",") = 0 i = i + 1 Cells(ActiveCell.Row + i, ActiveCell.Column).Value = "[" & Left(ActiveCell.Value, InStr(ActiveCell.Value, ",") - 1) & "]" ActiveCell.Value = Right(ActiveCell.Value, (Len(ActiveCell.Value) - InStr(ActiveCell.Value, ",") - 1)) Loop ActiveCell.Value = "[" & ActiveCell.Value & "]" End Sub