目录
1.自动换行和Alt+ENTER硬换行的区别
自动换行和alt+enter换行的区别有两点:
1.自动换行会根据单元格的列宽不同而不同,而硬换行不会
2.将两种情况下单元格内容copy出来放到txt中看到的结果不一样
13行为自动换行,14行为硬换行,copy两个单元格内容到txt
dwefdsvwefascszcs
"dqwd
fdwef"
可以看到自动换行在txt中仍然是一个整行,而硬换行是两行,且这两行字符用""引住。
自动换行和硬换行在取消Excel的自动换行之后,在Excel中看起来都是一行,但是此时硬换行还是有换行符在里面,copy到TXT还是两行
取消自动换行。
所以下面我们讨论的是删除硬换行或者替换硬换行。
2.删除或替换硬换行
2.1使用替换功能
ctrl+H打开替换功能:
在查找内容中输入‘ctrl+J’,替换为‘##’
或者在查找内容中输入'alt+10',替换为"##" 【先按住alt,在用小键盘输入10,推荐使用这种输入,alt+num 表示的就是字符char(num)】
结果为:
但是这种方式经常会出现找不到换行符的情况。而且反过来将'##'替换为'ctrl+J'后会显示多个空行如下:
不是最好最稳定的方案
2.2 用一些Excel自带的替换函数
使用=SUBSTITUTE(cell,CHAR(10),"")
设B列为原始待替换列,新建辅助列C,C5单元格输入==SUBSTITUTE(B5,CHAR(10),"##"),使用下拉填充即可看到被替换后的C列。反过来将'##'替换成硬换行也是完美的。
其他一些函数比如:
=CLEAN(text)
=TRIM(text)
可以参考:
2.3使用VBA的程序处理
该方法强烈推荐
alt+F11调出VB窗口,插入-模块 将下面代码写入,并运行
Sub RemoveCarriage()
'Update 20131216
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
Rng.Value = Replace(Rng.Value, Chr(10), "##")
Next
End Sub
上面代码运行后会跳出需要替换的范围,输入坐标范围即可
替换结果如下: