今天來分享一個超實用的 Excel 教學,就是有關於「分散對齊」這功能,不過很多人都知道,「中文字」要分散對齊非常的簡單,因為字元屬性的關係,中文每個字都是被認定拆開的,但英文數字就不同了,只要中間沒有空格都不算,因此你在網路上不論怎麼找,只看的到中文的分散對齊,沒看過有人講英文數字分散對齊到欄位的,今天我們就來各別分享一下,中文和英數各別要怎麼做才能達成分散對齊的需求。

Excel 教學 – 欄位文字分散對齊教學

先給大家看一下這是原本的內容,至於為什麼要用到分散對齊,有時就是為了美觀,比如像想要製作字卡等需求,英文數字也會想要分散對齊,我們一個一個來。

Excel 教學 - 如何將欄位中的「中文」或「英文數字」進行分散對齊? 01

首先是中文字的分散對齊,非常簡單,選取範圍 > 右鍵「儲存格格式」。

Excel 教學 - 如何將欄位中的「中文」或「英文數字」進行分散對齊? 02

在對齊方式這裡的「水平」選擇「分散對齊」。

Excel 教學 - 如何將欄位中的「中文」或「英文數字」進行分散對齊? 03

然後就可以看到中文字的部份自動對齊欄位寬度了。

Excel 教學 - 如何將欄位中的「中文」或「英文數字」進行分散對齊? 04

那英文也可以一樣的做法嗎?用一樣的做法後會發現只有標頭的「英文單字」被分散了,下面的英文單字聞風不動的跟你大眼瞪小眼,這是因為英文字母字跟字就是靠空格隔開的,那麼,我們就透過「空格」這個思維來透過 VBA 試試。

Excel 教學 - 如何將欄位中的「中文」或「英文數字」進行分散對齊? 05

首先,要使用 VBA 要先開啟開發人員的選單,如果你還沒打開的,要進到檔案。

Excel 教學 - 如何將欄位中的「中文」或「英文數字」進行分散對齊? 06

點撃「選項」(在最左下角)。

Excel 教學 - 如何將欄位中的「中文」或「英文數字」進行分散對齊? 07

然後在自訂功能區這裡,把開發人員加到右側去。

Excel 教學 - 如何將欄位中的「中文」或「英文數字」進行分散對齊? 08

接下來就有開發人員頁籤了,點撃後再開啟 Visual Basic,再選擇你要執行的工作表,然後在右側貼上以下 VBA 程式,並執行,其中的 E2:E11 記得要改成自己的範圍。

Sub AddSpacesBetweenLettersAndNumbers()
Dim cell As Range
Dim word As String
Dim i As Integer
Dim result As String

‘ 遍歷範圍中的每個單元格
For Each cell In Range(“E2:E11”)
‘ 將單元格的值轉換為字符串
word = CStr(cell.Value)

‘ 初始化結果字符串
result = “”

‘ 將單詞的每個字母逐個添加到結果字符串中,並在字母和數字之間添加空格
For i = 1 To Len(word)
‘ 檢查是否為字母或數字,如果是就在後面加上空格,否則保留原字符
If (Asc(Mid(word, i, 1)) >= 65 And Asc(Mid(word, i, 1)) <= 122) Or _
(Asc(Mid(word, i, 1)) >= 48 And Asc(Mid(word, i, 1)) <= 57) Then
result = result & Mid(word, i, 1) & ” ”
Else
result = result & Mid(word, i, 1)
End If
Next i

‘ 將結果字符串填入單元格,去除最後多餘的空格
cell.Value = Trim(result)
Next cell
End Sub

Excel 教學 - 如何將欄位中的「中文」或「英文數字」進行分散對齊? 09

執行後就會看到英數也分散對齊囉,這個做法的原理並不是真的透過 VBA 將文字分散對齊,我這做法只是在選取範圍中的英文及數字之間通通加上空格,強制讓他們分開,就能使用 Excel 內建的分散對齊功能囉。

Excel 教學 - 如何將欄位中的「中文」或「英文數字」進行分散對齊? 10

Last Update: 2024 年 04 月 03 日