空行上的行拆分/分隔符

  • 本文关键字:分隔符 拆分 excel vba
  • 更新时间 :
  • 英文 :


我有一个包含这些信息的单元格。

+---------+
| 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个(或更多(不同的文本,而无需进一步调整。

最新更新