Excel:具有多行文本的单元格为一行文本

Cla*_*ric 6 excel vba excel-vba

我有大约4000个单元格,每个单元格有大约4个单独的文本行.已使用ALT + ENTER方法输入每行文本.

任何人都可以建议一种方法,VBA或Excel命令/方法将这些单元格中的每一个转换为一行,单词之间有空格.

示例:当前单元格1:

  • 关于

需要:细胞1:

  • 关于马狗

任何帮助深表感谢

小智 8

要做到这一点没有VBA:

使用查找和替换.

在查找内容框中,按住ALT并键入0010 (换行的ASCII代码为10 - 您将看不到任何内容,但它是一个新行字符).

在替换框中,只需键入空格字符或任何分隔符.

点击Replace all按钮.


Gar*_*ent 7

试试这个短宏:

Sub dural()
    Dim rng As Range
    Set rng = Selection
    rng.Replace what:=Chr(10), lookat:=xlPart, replacement:=" "
End Sub
Run Code Online (Sandbox Code Playgroud)


Dav*_*d G 6

ALT + ENTER创建一个名为vbLF的角色(用于Visual Basic换行).您只想用空格替换vbLF,如下所示:

Sub test()
    Dim str As String
    str = Range("A1")
    Debug.Print str
    str = Replace(str, vbLf, " ")
    Debug.Print str
End Sub
Run Code Online (Sandbox Code Playgroud)

将它放在一个循环中:

Sub test()
    dim i as integer
    Dim str As String

    for i = 1 to 10 '(however many you want, can also be dynamic - use XlUp if you want to)
       str = Range("A" & i)
       Debug.Print str
       str = Replace(str, vbLf, " ")
       Debug.Print str
    next
End Sub
Run Code Online (Sandbox Code Playgroud)


Ton*_*ore 5

我认为这会做你想要的:

Sub Macro1()

    Cells.Replace What:=vbLf, Replacement:=" ", LookAt:=xlPart

End Sub
Run Code Online (Sandbox Code Playgroud)