VBA Trim 函數:清除字串前後的多餘空白字元
VBA Trim 函數:清除字串前後的多餘空白字元
📅 發布日期:2026-09-01
🏷️ 分類:字串處理 VBA 函數
💡 函數速查卡
| 函數名稱 | Trim / Trim$ |
|---|---|
| 所屬類別 | 字串處理 (String Manipulation) |
| 傳回類型 | Variant (String) / String |
| 常用頻率 | ★★★★★ |
在 Excel VBA 資料清理與字串比對過程中,Trim 是極為常用的基礎函數。它能自動移除指定字串開頭與結尾的多餘空白字元(Space),確保資料在進行數據整理、文字比對或寫入資料庫時不會因人為誤植的空白而導致錯誤。
一、 基本語法與參數
Trim 函數的標準語法結構如下:
Trim(string)
| 參數 | 說明 | 預設值 / 必填 |
|---|---|---|
string |
要移除首尾空白的目標字串表達式。 | 必填 |
二、 核心功能說明
Trim 函數會同步將字串最左側與最右側的所有半角空白字元剔除,但不會影響字串內部的單個或連續空白。
在實際 VBA 自動化開發中,常見的使用情境包括:
- 清洗從外部文字檔(CSV、TXT)或網頁爬蟲複製進來的混亂文字。
- 使用者在表單 InputBox 或儲存格輸入帳號密碼、工號時的前後空白預防處理。
- 在進行關鍵字精確比對(如
If str1 = str2 Then)前確保資料無隱藏空白。
三、 實用程式碼範例
範例 1:基本移除前後空白與長度驗證
觀察移除前後空白對字串長度(Len)的影響:
Sub BasicTrimExample()
Dim rawText As String, cleanText As String
rawText = " Hello World "
cleanText = Trim(rawText)
Debug.Print "原始長度: " & Len(rawText) ' 輸出: 17
Debug.Print "清理後長度: " & Len(cleanText) ' 輸出: 11
Debug.Print "結果: [" & cleanText & "]" ' 輸出: [Hello World]
End Sub
範例 2:工作表指定範圍批量清除空白
遍歷選取範圍內的儲存格,批次去除字串兩端的多餘空白:
Sub TrimSelectedCells()
Dim cell As Range
For Each cell In Selection
If Not IsEmpty(cell.Value) And VarType(cell.Value) = vbString Then
cell.Value = Trim$(cell.Value)
End If
Next cell
End Sub
範例 3:搭配 LTrim 與 RTrim 單邊處理
若只想針對左側(頭)或右側(尾)進行空白清除,可選擇對應的單邊函數:
Sub LeftRightTrimExample()
Dim text As String
text = " Data "
Debug.Print "LTrim: [" & LTrim(text) & "]" ' 輸出: [Data ] (僅切除左邊)
Debug.Print "RTrim: [" & RTrim(text) & "]" ' 輸出: [ Data] (僅切除右邊)
End Sub
四、 常見陷阱與注意事項
⚠️ 注意事項 1:VBA Trim 與 Excel 工作表 TRIM 函數行為不同
VBA 的
VBA 的
Trim 只會移除首尾空白,字串中間的多重連續空白會被完整保留。若希望將中間連續多個空白壓縮為單一空白,需呼叫工作表函數:Application.WorksheetFunction.Trim(text)。
⚠️ 注意事項 2:無法清除不合規空白(如 Chr(160) 全形或不換行空白)
Trim 僅能識別標準 ASCII Code 32 的半角空白。若資料包含網頁常出現的不換行空白(NBSP, Chr(160))或全形空白(Chr(12288)),需搭配 Replace 先行替換為標準空白後再執行 Trim。
五、 相關函數推薦
LTrim:僅移除字串最左側(開頭)的空白字元。RTrim:僅移除字串最右側(結尾)的空白字元。Replace:將字串中特定的字元(如不可見空白或全形空白)替換為指定文字。Len:計算並傳回目標字串的總字元長度。
六、 官方文件連結
想進一步瞭解更詳細的極端情境與進階用法,可參考微軟官方說明:
留言
張貼留言