Excel: Cell with multiple lines of text into one line of text
我大约有4000个单元格,每个单元格都有大约4行单独的文本。 每行文本已使用ALT + ENTER方法输入。
任何人都可以提出一种方法,无论是VBA还是Excel命令/方法,都可以将这些单元格中的每一个转换为一行,并在单词之间使用空格。
例:
当前
单元格1:
- 关于
- 马
- 狗
需要:
单元格1:
- 关于马狗
任何帮助深表感谢
要在没有VBA的情况下执行此操作:
使用查找和替换。
在"查找内容"框中,按住ALT并键入
(换行的ASCII码为10-您将看不到任何内容,但这是换行符)。
在替换框中,只需键入一个空格字符或任何定界符。
单击
试试这个简短的宏:
1 2 3 4 5 | Sub dural() Dim rng As Range Set rng = Selection rng.Replace what:=Chr(10), lookat:=xlPart, replacement:="" End Sub |
ALT + ENTER创建一个称为vbLF的字符(用于视觉基本换行)。 您只需要将vbLF替换为一个空格,如下所示:
1 2 3 4 5 6 7 | Sub test() Dim str As String str = Range("A1") Debug.Print str str = Replace(str, vbLf,"") Debug.Print str End Sub |
要将其循环放置:
1 2 3 4 5 6 7 8 9 10 11 | 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 |
我认为这将满足您的要求:
1 2 3 4 5 | Sub Macro1() Cells.Replace What:=vbLf, Replacement:="", LookAt:=xlPart End Sub |
在您喜欢的浏览器上进行一些搜索:
How to remove carriage returns (line breaks) from cells in Excel 2016, 2013, 2010
如果是"一次性",则无需创建VBA宏。 用空格替换回车,然后完成工作