Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Excel VBA 實現「輸入數字自動轉文字」:部門代碼 1→一車間、2→二車間…錄入效率倍增

編輯:XP 系統應用技巧

面對欄位眾多的 Excel 表單,來回捲動尋找欄位、手動輸入長文字(如部門名稱、產品類別、客戶等級)不僅慢,還極易錯行、打錯字。若能「輸入數字代碼,自動轉為對應文字」,錄入速度與準確度將大幅提升。本文教你用 VBA Worksheet_Change 事件 實現這一功能,一次設定、長期受益。

應用場景

人資表單錄入員工資料時,「所屬部門」欄位固定為:一車間、二車間、銷售部、行政部、財務部… 每次輸入完整名稱耗時且易誤。規劃代碼對照表:
1=一車間、2=二車間、3=銷售部、4=行政部、5=財務部。
錄入時僅輸入 1~5,系統自動轉換為對應部門名稱。

VBA 程式碼(貼至對應工作表的程式碼模組)

Private Sub Worksheet_Change(ByVal Target As Range)
    ' 僅在第二欄(B欄)觸發
    If Target.Column <> 2 Then Exit Sub
    ' 僅處理單一儲存格變更,避免批貼上觸發錯誤
    If Target.CountLarge > 1 Then Exit Sub
    
    Application.EnableEvents = False ' 防止遞迴觸發
    On Error GoTo CleanExit
    
    Select Case Target.Value
        Case 1: Target.Value = "一車間"
        Case 2: Target.Value = "二車間"
        Case 3: Target.Value = "銷售部"
        Case 4: Target.Value = "行政部"
        Case 5: Target.Value = "財務部"
        ' 可依需求擴充更多 Case
    End Select

CleanExit:
    Application.EnableEvents = True
End Sub

安裝步驟

  1. 開啟 Excel,按 Alt+F11 開啟 VBE 編輯器。
  2. 在「專案總管」中找到目標工作表(如「Sheet1 (資料錄入)」),雙擊開啟程式碼視窗。
  3. 貼上上述程式碼,關閉 VBE 回到 Excel。
  4. 將活頁簿存為 巨集啟用的活頁簿 (.xlsm)。

關鍵細節與擴充技巧

  • Target.Column = 2 限定僅 B 欄生效,其他欄位輸入數字不受影響。需調整欄位時修改此數字。
  • Target.CountLarge > 1 排除多儲存格同時變更(如貼上、刪除整列),避免誤判或效能問題。
  • Application.EnableEvents = False 防止「修改 Target.Value」再次觸發 Change 事件導致無限遞迴。
  • 擴充為「查找對照表」模式:若代碼項目眾多(超過 20 項),建議在隱藏工作表建立對照表,VBA 用 VLookup 或 Dictionary 物件查找,維護更彈性。
  • 搭配資料驗證:在 B 欄設定「資料驗證」→「清單」→ 來源輸入 1,2,3,4,5,限制使用者只能輸入合法代碼,並提供下拉選單提示。
  • 適用對象:適合預先部署於表單模板,或封裝為增益集分發給不熟 Excel 的一線錄入人員,收回表單後即可快速彙整資料。

為何不直接用「尋找取代」?

「尋找取代」會掃描整個工作表,極易將其他欄位同樣數字(如編號、電話尾碼)誤替換;逐項確認又極慢。VBA 針對特定欄位、即時轉換,零誤傷、零手動干預,真正實現「一勞永逸」。

幾行代碼,讓 Excel 變身智慧錄入表單,下次面對大量文字欄位,試試「數字代碼法」吧!

Copyright © Windows教程網 All Rights Reserved