分享

理解「回车」和「换行」,纠正数据输入过程中的坏习惯

 千彩一工作室 2020-03-15

各位朋友,你们好。

今天和大家分享的是一个很小很的技巧:文字、内容换行

关于文字换行,你们可能已经看过了很多这方面的文章,那些文章中确实已经讲解过不少换行操作的方法。那么我今天讲什么呢?大家看内容目录(是不是介绍得很全面,赶紧收藏起来吧,以后不用再到处查这方面的资料了。而且内容中干货很多,大量的动图演示和操作):


  1. 【回车】和【换行】的来历;
  2. 【回车】和【换行】的区别;
  3. Excel中换行的六种方法;
  4. Word中换行和回车的区别;
  5. 在VBA代码中,对内容的换行;
  6. 在VBA代码中,对代码的换行;
  7. 数据录入中,有哪些坏习惯。

一、【回车】和【换行】的来历

关于【回车键】,我们得从机械英文打字机说起。

在机械英文打字机上,有一个部件叫“字车”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符号。


三、Excel中换行的六种方法

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中换行和回车的区别

在Word中,实际的称呼应该是【软回车】和【硬回车】。

理解「回车」和「换行」,纠正数据输入过程中的坏习惯

Wword中软回车和硬回车的区别

在实际应用中,这两者有什么区别吗?我们看动图演示:

理解「回车」和「换行」,纠正数据输入过程中的坏习惯

实际应用中,软回车和硬回车的区别

对硬回车和软回车,我们用两种方式来看他们的区别:

1、过设置行距,可以看到不管是软回车换行还是自动换行,都能相应行距设置,所以这点一样;

2、通过设置段落间距,可以看到硬回车换行的地方会调整行距,但是软回车的地方不会调整。

得出结论:软回车只是换行(1个字符,分行效果);硬回车是回车+换行(2个字符,分段效果)

从上图中的演示,可以看出,软回车只起到了换行的作用,而硬回车是换行+回车的作用(这就是我在目录和标题中,称呼这两种为换行和回车的原因)

那么这两种代码,我们可以怎样处理呢?还是要用到办公神器:查找替换。

将软回车全部删除,在查找内容输入【^l】,替换为的地方什么都不输入,然后点全部替换;

将软回车替换为回车,在查找内容输入【^l】,替换为的地方输入【^p】,然后点全部替换。


五、在VBA代码中,对内容的换行

对于VBA中的换行,我们直接看下表:

理解「回车」和「换行」,纠正数据输入过程中的坏习惯

VBA中实现对内容换行额代码

我们可以用【VBA.vbLf、VBA.vbCr、VBA.vbCrLf】或者【VBA.Chr (10)、VBA.Chr (13)】来实现对内容的换行。原理嘛,请直接看第二章。


六、在VBA代码中,对代码的换行

在进行VBA代码编辑的时候,会遇到代码特别长的情况,如何给代码换行呢?在编程语言中,一行代码表示一个执行的操作,直接强制换成两行或者多行,都会导致代码运行的错误。我们可以用这个【_】符号对代码进行换行,效果如下:

理解「回车」和「换行」,纠正数据输入过程中的坏习惯

VBA中,对代码换行

上图中,上下两句代码虽然一句有换行,一句没有换行,但是执行起来,效果是一样的。通过换行的写法,在对代码的维护和管理时,可以更加直观和方便(尤其时遇到超级长的代码,若没有换行,屏幕都宽度都不够用,无法直接一眼看出代码中的问题。),所以,如果你们要学习VBA,这个点要先学到。


七、数据录入的坏习惯

数据录入有很多坑要避开,用坏习惯录入的数据,会给我们后期的工作带来很大的隐患,增加相当大的工作量。所以就今天文中提到的内容,给大家讲几点:

1、录入数据时,不要用空格去占位

这个是一个通病,尤其是遇到有强迫症的朋友,一定要用空格去对齐内容(比如两个字的名字和三个字的名字),其实这个效果是可以通过格式设置来实现(单元格自定义格式,对齐中的分散对齐);

2、录入数据时,要注意不可见、不可打印字符

这个最常见的也是空格和强制换行符。这里的空格不是占位,而是自己不小心在内容的最后录入的,这时从显示上,根本看不出来。而被这个问题困扰的人,一直有增无减,它直接影响函数公式对数据的识别、判断、查找、引用。当我们用函数查找出错的时候,一定不要盲目认为缺少数据,而是要去核对下看数据内容中是否有看不见的字符。

3、在Word中随意用软回车(换行)

Word主要是文字编辑和排版用,用软回车代替回车,不仅影响对整个文章段落格式的设置,还达不到想要的效果,给自己增加不少麻烦。


结尾:今天写了三千七百余字。虽然内容有点多,但是都是实实在在很有用的内容。无论你是否在其他地方看过相关的,但是我敢说没有哪篇文章整理得这么完善。所以建议你们收藏起来备用。

我是上班下班,因为爱好办公软件、喜欢分享。所以来到这里将我的学习心得和踩过的一些坑,和大家说说,希望大家学习我成功的经验,避开我入坑的教训。我和你们一起进步。

感谢各位朋友的关注和支持。

如果你喜欢我分享的内容,请点个赞支持下;

如果你觉得我分享的内容对你有帮助,可以关注我;

如果要看我以前分享过的好玩的内容,大家可以去我的主页查看历史文章。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多