若要在 Excel 程式碼中將數字轉成英文單字,最快的途徑是使用一個瀏覽器工具,名為 Number to Words Converter,它能針對任何介於負 999,999,999,999 到 999,999,999,999 之間的整數,產生一個確定性的小寫美式英文基數拼字結果。整個轉換過程完全在當前的分頁內完成——不需要上傳、不需要 API 呼叫、也不需要把 VBA 模組貼進活頁簿——所以你可以把任何 Excel 儲存格中的值貼到轉換器、讀取拼字結果,再複製回來,整個過程既不會動到試算表,也不會在啟用巨集的檔案上觸發安全性警告。輸出會是一段單一的小寫字串,如 twenty-five、one million two hundred thirty-four thousand five hundred sixty-seven,或 minus three billion two hundred fifty-eight million one hundred thousand nine,由一份有文件記載的短級數量級分組表所構成,與 Unicode 的規則式數字格式指引一致。
許多讀者會來到這個主題,是因為他們搜尋「Excel 程式碼」時預期會看到 VBA UserForm 函式、Excel LAMBDA,或 Office Scripts 程式碼片段。這幾種做法各自可行,但都有相同的摩擦點:巨集需要受信任的活頁簿和已簽署或已啟用的檔案,公式只能在儲存格內觸發,而指令碼套件則需要 Excel Online 方案。獨立的瀏覽器內轉換器可以避開這些限制,並提供一個穩定、可複製的結果,讓你能直接貼回標題、註解、工具提示或無障礙說明中,全程完全不需碰任何程式碼編輯器。

為什麼搜尋會落在 Excel 程式碼上
Excel 從未內建 SPELLNUMBER 函式,這正是為什麼有數千篇教學文章發表了會逐位迴圈數字、再拼出英文單字的 VBA 程式碼。Microsoft Q&A 論壇、Stack Overflow 以及長年累月的部落格文章,都收錄了同一個 SpellNumber 巨集的各種變體,它會讀取一個金額並把「twelve thousand three hundred forty-five」寫入目標儲存格。搜尋引擎大量索引了這些頁面,所以任何同時提到「Excel」和「convert number to words」的查詢,即使讀者只想要一個快速的拼字結果,仍會回傳一大堆程式碼相關的答案。
誠實地說,這個巨集的權衡是忠實但脆弱:它必須存在於活頁簿內、活頁簿必須允許巨集、檔案副檔名會變成 .xlsm,而每一位以較嚴格原則開啟這個工作表的隊友,都會看到一條黃色的警告列。一個存在於 Excel 之外的瀏覽器工具可以完全避開這些問題,同時你仍能產生相同的基數形式,貼回同一個活頁簿中,而無須放棄試算表原本乾淨的 .xlsx 副檔名。
三步驟將數字轉成英文單字
Number to Words Converter 遵循嚴格的三步驟工作流程,直接對應你在 VBA 程式碼中會做的事,只是不必動到活頁簿。
- 輸入一個整數,可選擇性地加上正負號和標準的三位數逗數分組,例如 1,234,567 或 -500。前置零會被接受並忽略。
- 選擇 Convert to words,並讀取工具在結果旁邊回傳的標準化數值,藉此確認它與你想拼的那個整數一致。
- 從結果面板複製小寫的美式英文基數拼字結果,再貼到你的 Excel 儲存格、註解、標題,或任何需要這串英文單字的純文字欄位中。
編輯輸入內容會清除先前的拼字結果,因此較舊的結果絕不會被誤認為是目前值。由於解析器以 BigInt 執行,並在拼字前就拒絕絕對值大於 999,999,999,999 的數值,因此貼上的 16 位數值不會意外超出 JavaScript 預設 Number 的範圍,也不會回傳四捨五入後的近似值。
轉換器接受的輸入規則
當拼字結果必須具備確定性時,語法規則至關重要。轉換器僅接受整數語法中一個精確的子集,模擬傳統美式英文寫法:
| 接受的輸入 | 範例 | 標準化後的值 |
|---|---|---|
| 未分組的數字 | 1234567 | 1,234,567 |
| 標準三位數分組 | 1,234,567 | 1,234,567 |
| 前置負號 | -42 | -42 |
| 前置正號 | +42 | 42 |
| 前置零 | 0001234 | 1,234 |
| 負零 | -0 | 0 |
任何超出該語法的內容,都會在任何拼字嘗試開始之前遭到拒絕。小數、分數、科學記號、貨幣符號、數字之間的空格、會計用括號、十六進位前置詞,以及像「twelve」這類以文字撰寫的數字詞,全都落在範圍之外。若要把英文單字形式再轉回數字,請參考相關的 Words to Numbers 工具。
拼字結果是如何建構出來的
若要把這個轉換器視為一段邏輯,可以拿一個範例走過逐組的管線。整數 1,234,567 會被拆成三個三位數的組:1、234 與 567。轉換器使用一張固定的對照表來拼出每個非空白的組:zero 到 nineteen 各為自身的英文單字,twenty 到 ninety 為標準的十位數字,十位加個位以連字號連接(因此 45 變成「forty-five」),百位則寫成該位數的英文單字加上「hundred」。非空白的組會再加上其數量級名稱——第二組為 thousand、第三組為 million、第四組為 billion。空白的組會被略過,因此 1,000,001 會變成「one million one」,而不是冒出「one million zero thousand one」。Unicode 聯盟的規則式數字格式規格,以及 EF English 關於英文數字的資源頁面,都支持這個設定檔,因此輸出會對應到廣為引用的基數慣例,而非單一自家風格。
同一條管線也透過在最後重新掛上負號來處理負值,因此 -25 會變成 minus twenty-five。若句子需要大寫,那是使用者要自己加上去的步驟;這個工具僅回傳小寫形式。管線刻意省略 hundred 之後可選的連接詞「and」,這是 105 等數字兩種有效的美式英文拼法之一。有文件的設定檔讓結果得以重現,這正是使用工具、而非在 Excel 中逐格手動編輯的重點。
常見的拒絕情況與修正方式
大多數失敗的轉換來自逗數分組錯誤或多餘字元。解析器強制規定第一組之後的每一組都必須剛好三位數,這表示 12,34 和 1,0000 會被拒絕,而不是默默修正。若你看到「invalid group size」訊息,請重新計算逗數之間的數字數量。第二個常見原因是從 Excel 或聊天軟體複製過來的隱形字元:定位字元、不斷行空格,或夾帶的零寬連字都可能混進輸入內容。請在 Excel 中以 =TRIM(CLEAN(A1)) 來清理字串,再把清理過後的數字貼到轉換器中。
第三類拒絕情況涉及超過上限的值。轉換器的上限是 999,999,999,999,這讓詞彙僅限於 billion,並避免浮點數四捨五入。若你需要拼出一個更大的數字,請將它拆成較小的部分,分別拼出每一部分,再於試算表中串接起來——例如,一兆可以寫成拼出來的 trillion 部分,加上剩餘 billions 的拼字結果。對於純粹的整數值,只要在一兆以內,轉換器都能涵蓋,無需額外的處理。
這個工具不適用的情境
基數拼字並非支票用語、貨幣金額、年份、電話號碼、序數,也不是逐位數的發音。轉換器不會加上「dollars」、「and cents/100」、代表負數的括號,或任何保護性的支票措辭。如果你的欄位會流入發票範本、法律合約或受規範的表單,請另行審核用詞,而非直接照貼轉換器的輸出。請把這個工具視為一種格式化輔助:適用於白話標籤、無障礙草稿、課堂練習,以及文件片段中需要確定性小寫形式的場景。
把結果用回 Excel 之中
一旦拼字結果進入你的剪貼簿,要把它送回 Excel,只需要一次貼上。常見的做法是把這串英文單字貼到標題列、儲存格註解、圖表標籤所使用的已命名範圍,或驗證訊息中。如果你需要在編輯後重新整理整欄的拼字結果,請把轉換器的結果貼到原始整數旁邊,再使用像 =A1 & " = " & B1 這樣的公式,把數字形式與拼字形式合併起來。若批次較大,請在第二個分頁保持轉換器開啟,逐一複製每筆結果,再貼到對應的列。輸出本身並未鎖定來源活頁簿,因此你也可以把同一段拼字結果貼到 Word 文件、電子郵件簽名或 CSV 導出中,而不會遺失格式。
值得了解的相關工作
如果你的工作流程需要反向操作——把輸入的英文單字轉回整數——可以使用同站上的 Words to Numbers 夥伴工具。如果你需要把整數以另一個進位制表示,例如二進位、八進位或十六進位,Number Base Converter 能在不四捨五入的情況下處理該情況。如果想更了解如何完全跳過試算表中的巨集,可參考 converting numbers to words in Excel without formulas or VBA 這篇指南,內含詳細的免程式碼步驟,並附有螢幕擷圖與可複製的範例。