我有一个包含这些信息的单元格。
+---------+
| ghijkl |
| aededd |
| |
| ededed |
| ededfe |
| |
| efefeef |
| efefeff |
+---------+
我可以把它分成三个细胞吗?
+---------+ ---------+ ---------+
| ghijkl | ededed | efefeef |
| aededd | ededfe | efefeff |
| | | |
+---------+----------+----------+
我尝试了分隔符工具和各种VBA代码。在每个换行处全部拆分。没有在空换行符/行上拆分。
尝试下面的子
Sub CellSplit()
Dim MyInput As String
Dim TempText As String, result As String
Dim sSplit
MyInput = Range("A1")
TempText = Replace(MyInput, Chr(10), "@")
sSplit = Split(TempText, "@@")
For i = LBound(sSplit) To UBound(sSplit)
Cells(1, i + 2) = Replace(sSplit(i), "@", Chr(10))
Next i
End Sub
编辑:在列上循环使用sub-
Sub CellSplit()
Dim TempText As String
Dim sSplit
Dim cel As Range
Dim lRow As Long
lRow = Cells(Rows.Count, "A").End(xlUp).Row
For Each cel In Range("A1:A" & lRow)
TempText = Replace(cel, Chr(10) & Chr(10), "@")
sSplit = Split(TempText, "@")
For i = LBound(sSplit) To UBound(sSplit)
cel.Offset(0, i + 2) = sSplit(i)
Next i
Next cel
End Sub
下面的公式就可以了。
=FILTERXML("<data><a>"&SUBSTITUTE($B2,CHAR(10)&CHAR(10),"</a><a>")&"</a></data>","/data/a["&COLUMN()-3&"]")
原始数据在B2中。-3必须比放置公式的列的编号少1。例如,E列是第五列,意思是第5列。如果将公式放在E列,则公式中的数字必须为-4。
将公式粘贴到一个单元格并调整列指示器后,您可以将公式复制到右侧,它将显示3个(或更多(不同的文本,而无需进一步调整。