理解「回車」和「換行」,糾正數據輸入過程中的壞習慣

今天和大家分享的是一個很小很的技巧:文字、內容換行。

關於文字換行,你們可能已經看過了很多這方面的文章,那些文章中確實已經講解過不少換行操作的方法。那麼我今天講什麼呢?大家看內容目錄(是不是介紹得很全面,趕緊收藏起來吧,以後不用再到處查這方面的資料了。而且內容中乾貨很多,大量的動圖演示和操作):


  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主要是文字編輯和排版用,用軟回車代替回車,不僅影響對整個文章段落格式的設置,還達不到想要的效果,給自己增加不少麻煩。


結尾:今天寫了三千七百餘字。雖然內容有點多,但是都是實實在在很有用的內容。無論你是否在其他地方看過相關的,但是我敢說沒有哪篇文章整理得這麼完善。所以建議你們收藏起來備用。

我是上班下班,因為愛好辦公軟件、喜歡分享。所以來到這裡將我的學習心得和踩過的一些坑,和大家說說,希望大家學習我成功的經驗,避開我入坑的教訓。我和你們一起進步。

如果你喜歡我分享的內容,請點個贊支持下;

如果你覺得我分享的內容對你有幫助,可以關注我;

如果要看我以前分享過的好玩的內容,大家可以去我的主頁查看歷史文章。


分享到:


相關文章: