Excel:按新行拆分单元格

Excel:按新行拆分单元格

在 Excel 中,有没有办法像图片中那样用新行将单元格拆分成行

在此处输入图片描述

附言:Emily 建议我复制到 Word 中,但是当我复制时,它会像这样复制:

6   A   B
7   "7A
7B" "7C
7D"
8   8C  "8C
8D"
9   9A  9B

答案1

我希望改进艾米丽的回答,并且做得更详细,因为她的回答有点太直白了。

复制数据:

数据

转到 MS Word 并按下Alt+Ctrl+V并选择格式化文本 (RTF). 选择数据并复制从 ms word 复制

返回 MS Excel,选择一个单元格并粘贴使用Ctrl+V你会得到这个:

粘贴到 ms-excel 中 在这里,我已将数据粘贴到另一张表中。

单击包含6IE, A1此处,然后点击格式刷

格式刷

向下拖动包含数字 6、7、8、9... 的列以选择所有数字,从而正确格式化。

最终格式化

同样,选择包含6A, 点击格式刷,然后向下拖动以获得所需的格式。

谢谢。希望这个详细的答案能帮助你解决问题:)

答案2

您可以使用Word作为助手吗?

您可以将这些资料复制到 Word,然后将这些数据复制回 Excel。

在此处输入图片描述

在此处输入图片描述

然后选择一个单元格,例如包含“6”的单元格 E3,使用格式刷为这些数据设置单元格格式。

在此处输入图片描述

答案3

如果您愿意使用 VBA,这里有一个可以执行此操作的宏:

Sub splitByNewLine()
    Dim pasteCell As Range, rowCumulationTotal As Integer
    rowCumulationTotal = 0
    
    On Error GoTo inputErrorHandling
        Set pasteCell = Range(InputBox("Please enter target cell address"))
    On Error GoTo 0
    
    For i = 1 To Selection.Rows.Count
        Dim rowCumulationCurrent As Integer, maxElemsOnRow As Integer
        rowCumulationCurrent = 0
        maxElemsOnRow = 0
        For j = 1 To Selection.Columns.Count
            Dim elems() As String, elemCount As Integer
            elems = Split(Cells(Selection.Row + i - 1, Selection.Column + j - 1), vbLf)
            elemCount = UBound(elems)
            For k = 0 To elemCount
                Cells(pasteCell.Row + i + rowCumulationTotal + k - 1, pasteCell.Column + j - 1) = elems(k)
                If maxElemsOnRow < k Then
                    rowCumulationCurrent = rowCumulationCurrent + 1
                    maxElemsOnRow = k
                End If
            Next k
        Next j
        rowCumulationTotal = rowCumulationTotal + rowCumulationCurrent
    Next i
    Exit Sub
    
inputErrorHandling:
    On Error GoTo 0
    MsgBox ("You didn't enter valid cell address")
End Sub

要使用它,只需选择区域您想要转换并运行宏。它会要求您提供一个目标单元格,即要复制所选内容(或者更确切地说,复制将从此处开始)并进行所需拆分的单元格。

相关内容