各位朋友,你们好。
今天和大家分享的是一个很小很的技巧:文字、内容换行。
关于文字换行,你们可能已经看过了很多这方面的文章,那些文章中确实已经讲解过不少换行操作的方法。那么我今天讲什么呢?大家看内容目录(是不是介绍得很全面,赶紧收藏起来吧,以后不用再到处查这方面的资料了。而且内容中干货很多,大量的动图演示和操作):
关于【回车键】,我们得从机械英文打字机说起。
在机械英文打字机上,有一个部件叫“字车”carriage,每打一个单词,“字车”就前进一格。
当打满一行字符 后,打字者就得推动“字车”到起始位置,这时打字机会有两个动作响应:
一是:“字车”被归位carriage return(回到最左端),这个推动“字车”的动 作叫“回车”carriage return。
二是:滚筒上卷一行line feed,以便开始输入下一行。
所以合并起来就是CrLf = Carriage Return & Line Feed
故事讲完了,我们进入正题:
关于【回车】(Carriage Return)和【换行】(Line Feed)来历,首先要弄清楚两个概念:
1、回车CR:将光标移动到当前行的开头。
2、换行LF:将光标”垂直“移动到下一行。(不移动到下一行的开头,即不改变光标水平位置)
因为,在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的设备,每秒钟可以打10个字符。打字速度虽然很快,但是它有一个问题:打完一行换另一行的时候,要用0.2秒时间,这0.2秒正好可以打两个字符。如果在这0.2秒里面又有新的字符传过来,那么这个字符将丢失……
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一些端倪。
后来,计算机被发明了,这两个概念也就被移植到了计算机系统设计中。那时存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。
Unix系统里,每行结尾只有“<换行>”,即"\n";
Windows系统里面,每行结尾是“<换行><回车>”,即“\n\r”;
Mac系统里,每行结尾是“<回车>”,即"\n";。
这就是我下面要说到的两者的区别。
我直接用一张表来说明,毕竟文字看起来不太直观:
回车和换行的区别
那么,他们在不同的操作系统中,又有哪些差异呢?还是看一张表:
在不同操作系统中的差异
需要注意的是:这种差别在编程、不同OS之间传输纯文本时,会造成一些不协调。一个直接后果是,Unix/Mac系统下的文件在 Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
1、自动换行
在Excel中,最常用的是自动换行,他的位置和实现的效果,直接看下图:
自动换行功能的位置及其效果
2、强制换行
如果只知道自动换行,那么在数据录入的时候,会出很多问题,下图就是其中的一种:
在编辑栏中可以看到,这是一段文字,用自动换行实现了换行的效果,但是为了让序号呈现对齐的效果,于是就在内容中添加了很多空格,使内容看上去很整齐。
数据录入中不好的习惯
这是一个非常不好的习惯,且不说录入过程很费劲,就是一旦调整下列宽,所有数据又会全部错乱,需要重新调整,格式很难维护。那么,在这种情况下,我们需要使用强制换行。
强制换行:快捷键【Alt+Enter】,由于其ASCII代码值为10,故在VBA中可以用VBA.CHR(10)表示,在工作表中可用CHAR(10)表示。
我们先用动图看下效果:
强制换行操作演示
强制换行的显示是在编辑栏中可以直接看到换行效果,并且换行符要占用1个字符(详见第二节内容)。
延伸内容:
①、可否利用强制换行符?
既然强制换行符是一个占一个字节的符号,那么我们可以就利用这个符号,来定位字符串内容,以实现对文本的截取操作【函数公式中,用CHAR(10),表示强制换行符】:
利用识别强制换行符拆分文本字符串
②、这个强制换行符该如何清除呢?
如下图所示,B1单元格内用了强制换行符,但是在单元格格式未设置成自动换行,所以显示出来还是111,但是实际上它现在不是数值、不能参与计算、还会影响查找引用。这种情况下该如何清除它呢?
强制换行后,显示和未换行的一样
强制换行符是一种不可见、非打印字符,ASCII代码值为10,参考以上及格特征,我们可以对症使用CLEAN函数进行清理。
Clean,从名称上可以看出函数的作用,它可以清除字符串的中非打印、不可见字符,但是仅限于ASCII值在【1~31】之间的不可见字符。强制换行符的ASCII值为10,在此函数的清理范围内。
对于上图示例,我们直接使用公式:Clean(B1),即可清理掉里面所有的强制换行符。
CLEAN函数清理强制换行符
3、使用函数换行
这种方法,原理上和第2种是一样的,只是这种方法常用于函数公式中,第2种方法是直接用于原始的字符串。我们来看个例子:
函数中使用强制换行符
4、批量强制换行(三种方法)
大家还记得我讲解强制换行开头,那个例子吗?像这种需要进行换行操作较多的内容,一个一个去手动换行,效率怎么样不用我说了吧。遇到这种情况该如何处理呢?
当然是得批量操作进行强制换行,我们需要用到Execl中能实现批量操作的神器:查找替换。
那么查找的内容怎么填?替换为的内容又怎么填呢?接下来我用例子给大家说明:
批量替换
在这里,我用了三组组合键,都实现了换行的效果:
Ctrl+J、Ctrl+Enter、Alt+10(注意,这里的10只能通过小键盘录入!字母区上方的数字键录入是无效的)。对于这点,大家只要记住相应的组合键,然后会用就可以了。
注:对于我前面的那个用空格填充实现整齐效果的,也可以用查找替换的方式来实现,只是要借助Word和通配符查找,先对数据进行处理,然后在回到Excel中用上面演示的方法,由于本文文字较多,这里就不扩展了,以后单独用文章介绍Word的通配符。
在Word中,实际的称呼应该是【软回车】和【硬回车】。
Wword中软回车和硬回车的区别
在实际应用中,这两者有什么区别吗?我们看动图演示:
实际应用中,软回车和硬回车的区别
对硬回车和软回车,我们用两种方式来看他们的区别:
1、过设置行距,可以看到不管是软回车换行还是自动换行,都能相应行距设置,所以这点一样;
2、通过设置段落间距,可以看到硬回车换行的地方会调整行距,但是软回车的地方不会调整。
得出结论:软回车只是换行(1个字符,分行效果);硬回车是回车+换行(2个字符,分段效果)
从上图中的演示,可以看出,软回车只起到了换行的作用,而硬回车是换行+回车的作用(这就是我在目录和标题中,称呼这两种为换行和回车的原因)
那么这两种代码,我们可以怎样处理呢?还是要用到办公神器:查找替换。
将软回车全部删除,在查找内容输入【^l】,替换为的地方什么都不输入,然后点全部替换;
将软回车替换为回车,在查找内容输入【^l】,替换为的地方输入【^p】,然后点全部替换。
对于VBA中的换行,我们直接看下表:
VBA中实现对内容换行额代码
我们可以用【VBA.vbLf、VBA.vbCr、VBA.vbCrLf】或者【VBA.Chr (10)、VBA.Chr (13)】来实现对内容的换行。原理嘛,请直接看第二章。
在进行VBA代码编辑的时候,会遇到代码特别长的情况,如何给代码换行呢?在编程语言中,一行代码表示一个执行的操作,直接强制换成两行或者多行,都会导致代码运行的错误。我们可以用这个【_】符号对代码进行换行,效果如下:
VBA中,对代码换行
上图中,上下两句代码虽然一句有换行,一句没有换行,但是执行起来,效果是一样的。通过换行的写法,在对代码的维护和管理时,可以更加直观和方便(尤其时遇到超级长的代码,若没有换行,屏幕都宽度都不够用,无法直接一眼看出代码中的问题。),所以,如果你们要学习VBA,这个点要先学到。
数据录入有很多坑要避开,用坏习惯录入的数据,会给我们后期的工作带来很大的隐患,增加相当大的工作量。所以就今天文中提到的内容,给大家讲几点:
1、录入数据时,不要用空格去占位
这个是一个通病,尤其是遇到有强迫症的朋友,一定要用空格去对齐内容(比如两个字的名字和三个字的名字),其实这个效果是可以通过格式设置来实现(单元格自定义格式,对齐中的分散对齐);
2、录入数据时,要注意不可见、不可打印字符
这个最常见的也是空格和强制换行符。这里的空格不是占位,而是自己不小心在内容的最后录入的,这时从显示上,根本看不出来。而被这个问题困扰的人,一直有增无减,它直接影响函数公式对数据的识别、判断、查找、引用。当我们用函数查找出错的时候,一定不要盲目认为缺少数据,而是要去核对下看数据内容中是否有看不见的字符。
3、在Word中随意用软回车(换行)
Word主要是文字编辑和排版用,用软回车代替回车,不仅影响对整个文章段落格式的设置,还达不到想要的效果,给自己增加不少麻烦。
结尾:今天写了三千七百余字。虽然内容有点多,但是都是实实在在很有用的内容。无论你是否在其他地方看过相关的,但是我敢说没有哪篇文章整理得这么完善。所以建议你们收藏起来备用。
我是上班下班,因为爱好办公软件、喜欢分享。所以来到这里将我的学习心得和踩过的一些坑,和大家说说,希望大家学习我成功的经验,避开我入坑的教训。我和你们一起进步。
感谢各位朋友的关注和支持。
如果你喜欢我分享的内容,请点个赞支持下;
如果你觉得我分享的内容对你有帮助,可以关注我;
如果要看我以前分享过的好玩的内容,大家可以去我的主页查看历史文章。
联系客服