logo
search
list

目錄

第一部分:如何使用VBA在Excel中将数字转换为文字
第二部分:免VBA在Excel中将数字转换为文字的方法
第三部分:为什么要使用WPS Office?
第四部分:如何使用WPS AI在Excel中将数字转换为文字
关于在Excel中将数字转换为文字的常见问题解答
总结

如何在Excel中将数字转换为文字

發佈者 陳文豪

calendar

2026-09-20

views

868

likes

59

如果你的工作表包含一列数值,并且需要将它们转换为对应的英文单词,你可能会想知道该怎么做。Excel 没有直接执行此操作的公式,但你可以使用一些变通方法,包括使用只需简单提示词即可将数字转换为单词的 WPS AI。在本文中,我们将向你展示如何在 Excel 中将数字转换为单词。

第一部分:如何使用 VBA 在 Excel 中将数字转换为单词


将数字转换为单词


将数字转换为单词

你的 Excel 工作表里充满了数字,现在想象一下这些数字神奇地变成了单词。这就是 Excel 迷人世界中 SpellNumber 宏的威力。让我们简单了解一下如何添加此宏,为即将到来的魔法做好准备。

示例:将数字转换为单词

你在 A 列中有一列从 1 到 10 的数字。你希望将这些数字转换为单词,为数据增添一丝优雅。让我们看看如何添加 SpellNumber 宏来实现这一点,为下一步做准备。

100% 安全

第一步:打开 Excel 并导航到“开发工具”选项卡。如果你没有看到此选项卡,请不要担心!你可以在 Excel 选项中轻松启用它。


添加“开发工具”选项卡


添加“开发工具”选项卡




“开发工具”选项卡


“开发工具”选项卡



第二步:点击“Visual Basic”以打开 VBA 编辑器。


VBA 编辑器


VBA 编辑器



第三步:在 VBA 编辑器中,导航到“插入”并选择“模块”。这就是奇迹发生的地方。



插入



第四步:将下方参考链接中的 SpellNumber 宏代码复制并粘贴到模块中。

Function SpellNumber(ByVal MyNumber)

'Update by Extendoffice

Dim xStr As String

Dim xFNum As Integer

Dim xStrPoint

Dim xStrNumber

Dim xPoint As String

Dim xNumber As String

Dim xP() As Variant

Dim xDP

Dim xCnt As Integer

Dim xResult, xT As String

Dim xLen As Integer

On Error Resume Next

xP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")

xNumber = Trim(str(MyNumber))

xDP = InStr(xNumber, ".")

xPoint = ""

xStrNumber = ""

If xDP > 0 Then

xPoint = " point "

xStr = Mid(xNumber, xDP + 1)

xStrPoint = Left(xStr, Len(xNumber) - xDP)

For xFNum = 1 To Len(xStrPoint)

xStr = Mid(xStrPoint, xFNum, 1)

xPoint = xPoint & GetDigits(xStr) & " "

Next xFNum

xNumber = Trim(Left(xNumber, xDP - 1))

End If

xCnt = 0

xResult = ""

xT = ""

xLen = 0

xLen = Int(Len(str(xNumber)) / 3)

If (Len(str(xNumber)) Mod 3) = 0 Then xLen = xLen - 1

Do While xNumber <> ""

If xLen = xCnt Then

xT = GetHundredsDigits(Right(xNumber, 3), False)

Else

If xCnt = 0 Then

xT = GetHundredsDigits(Right(xNumber, 3), True)

Else

xT = GetHundredsDigits(Right(xNumber, 3), False)

End If

End If

If xT <> "" Then

xResult = xT & xP(xCnt) & xResult

End If

If Len(xNumber) > 3 Then

xNumber = Left(xNumber, Len(xNumber) - 3)

Else

xNumber = ""

End If

xCnt = xCnt + 1

Loop

xResult = xResult & xPoint

SpellNumber = xResult

End Function

Function GetHundredsDigits(xHDgt, xB As Boolean)

Dim xRStr As String

Dim xStrNum As String

Dim xStr As String

Dim xI As Integer

Dim xBB As Boolean

xStrNum = xHDgt

xRStr = ""

On Error Resume Next

xBB = True

If Val(xStrNum) = 0 Then Exit Function

xStrNum = Right("000" & xStrNum, 3)

xStr = Mid(xStrNum, 1, 1)

If xStr <> "0" Then

xRStr = GetDigits(Mid(xStrNum, 1, 1)) & "Hundred "

Else

If xB Then

xRStr = "and "

xBB = False

Else

xRStr = " "

xBB = False

End If

End If

If Mid(xStrNum, 2, 2) <> "00" Then

xRStr = xRStr & GetTenDigits(Mid(xStrNum, 2, 2), xBB)

End If

GetHundredsDigits = xRStr

End Function

Function GetTenDigits(xTDgt, xB As Boolean)

Dim xStr As String

Dim xI As Integer

Dim xArr_1() As Variant

Dim xArr_2() As Variant

Dim xT As Boolean

xArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")

xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")

xStr = ""

xT = True

On Error Resume Next

If Val(Left(xTDgt, 1)) = 1 Then

xI = Val(Right(xTDgt, 1))

If xB Then xStr = "and "

xStr = xStr & xArr_1(xI)

Else

xI = Val(Left(xTDgt, 1))

If Val(Left(xTDgt, 1)) > 1 Then

If xB Then xStr = "and "

xStr = xStr & xArr_2(Val(Left(xTDgt, 1)))

xT = False

End If

If xStr = "" Then

If xB Then

xStr = "and "

End If

End If

If Right(xTDgt, 1) <> "0" Then

xStr = xStr & GetDigits(Right(xTDgt, 1))

End If

End If

GetTenDigits = xStr

End Function

Function GetDigits(xDgt)

Dim xStr As String

Dim xArr_1() As Variant

xArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")

xStr = ""

On Error Resume Next

xStr = xArr_1(Val(xDgt))

GetDigits = xStr

End Function

第五步:关闭 VBA 编辑器并返回 Excel 工作表。


添加 VBA 代码


添加 VBA 代码



我添加 SpellNumber 宏的经验:

在 Excel 中集成 SpellNumber 宏出乎意料地简单。我按照步骤导航到“开发工具”选项卡和 VBA 编辑器,在其中添加了用于记账金额表述的宏代码。数字可以转换成文本,这引起了我的极大兴趣。不过,我也学会了要保持谨慎;宏需要高度准确,以免破坏电子表格。提前备份数据并了解 VBA 的结构对我都很有帮助。这次体验为我打开了更多 Excel 玩法的大门,将逻辑与创造力完美结合。

你的 Excel 工作表将成为展现语言魔法的画布。在第二部分中,我们将为你提供解锁 SpellNumber 宏的钥匙,这是一款强大的工具,能将你的数值数据升华为优美的文字交响乐。浏览实际案例,它们将为你照亮精通之路;在这款非凡宏的指引下,亲眼见证数据在你面前发生的奇妙蜕变。

示例:将数值数据转换为单词

第一步:打开包含你想转换的数值数据的 Excel 工作表。

第二步:选择相邻的一列。我们使用 B 列来存放转换后的单词。

第三步:在 B 列的第一个单元格中,输入 =SpellNumber(A1)。


SpellNumber 公式


SpellNumber 公式



第四步:按 Enter 键,你会看到 A1 单元格中的数字优雅地转换为 B1 单元格中的单词。

第五步:要转换更多数字,请向下拖动公式,让 SpellNumber 宏发挥它的魔力。


向下拖动公式


向下拖动公式



我使用 SpellNumber 宏的经验:

尝试使用 SpellNumber 宏为我带来了全新的视角,数字变成了文字,为数据增添了新意。整个过程非常简单,展现了其在增强交流方面的潜力。不过,需要提醒的是,准确性至关重要。一个小小的失误就可能导致意想不到的结果。熟悉宏代码并进行仔细的输入验证是获得无缝体验的关键。

第二部分:如何在没有 VBA 的情况下在 Excel 中将数字转换为单词

应对复杂的 VBA 环境可能看起来令人望而生畏,但不要害怕——因为有一种更简单的方法可以实现将数字转换为单词的神奇效果。这种替代方法利用自定义函数,提供了一种简化的方式,同时保留了同样迷人的转换效果。通过深入了解以下步骤,我们将揭示这项创新技术,让你巧妙避开 VBA 的复杂性,将单词的抒情魅力无缝融入你的数据中。

使用 SpellNumber 宏的优势:

1. 易于使用:自定义函数提供了极简的操作。无需具备 VBA 知识,这使得更广泛的用户受众都能轻松上手。

2. 通用可访问性:与需要集成到每个工作簿中的宏不同,该函数随工作表一起移动,从而确保无缝共享。

3. 零宏警报:共享工作簿时,告别烦人的宏警告。该函数在后台运行,优雅地将数字转换为单词。

在 Excel 中使用宏来实现 SpellNumber 的缺点:

1. 熟练掌握 VBA:宏需要具备 VBA 技能才能进行自定义,这可能会限制不熟悉编程的用户。

2. 针对特定工作簿:宏必须复制或内置到每个工作簿中,这增加了复杂性和维护工作量。

3. 宏警报:共享包含宏的工作簿可能会触发警报,从而引发潜在的安全隐患。

现在,让我们换条风景优美的路线,通过一个实际示例来见证这种方法(使用 Excel 中可用的公式组合)的巧妙之处。

如何在没有 VBA 的情况下在 Excel 中将数字转换为单词

示例:使用公式将数字转换为单词

第一步:打开包含你希望转换的数值数据的 Excel 工作表。


示例数据


示例数据



第二步:选择相邻的一列。我们使用 B 列来存放转换后的单词。

第三步:在 B 列的第一个单元格中,输入以下公式:

=IF(OR(LEN(FLOOR(A1,1))=13,FLOOR(A1,1)<=0),"out of="" range="">1,CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),3,1)+1,""," one"," two"," three"," four"," five"," six"," seven"," eight"," nine"),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),2,1))=0,CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),3,1)+1,"","one","two","three","four","five","six","seven","eight","nine"),"")),IF(A1>=10^9," billion ",""),CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),4,1)+1,"","one hundred ","two hundred ","three hundred ","four hundred ","five hundred ","six hundred ","seven hundred ","eight hundred ","nine hundred "),CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),5,1)+1,"",CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),6,1)+1,"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"),"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),5,1))>1,CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),6,1)+1,""," one"," two"," three"," four"," five"," six"," seven"," eight"," nine"),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),5,1))=0,CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),6,1)+1,"","one","two","three","four","five","six","seven","eight","nine"),"")),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),4,3))>0," million ",""),CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),7,1)+1,"","one hundred ","two hundred ","three hundred ","four hundred ","five hundred ","six hundred ","seven hundred ","eight hundred ","nine hundred "),CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),8,1)+1,"",CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),9,1)+1,"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"),"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),8,1))>1,CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),9,1)+1,""," one"," two"," three"," four"," five"," six"," seven"," eight"," nine"),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),8,1))=0,CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),9,1)+1,"","one","two","three","four","five","six","seven","eight","nine"),"")),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),7,3))," thousand ",""),CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),10,1)+1,"","one hundred ","two hundred ","three hundred ","four hundred ","five hundred ","six hundred ","seven hundred ","eight hundred ","nine hundred "),CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),11,1)+1,"",CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),12,1)+1,"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"),"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),11,1))>1,CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),12,1)+1,""," one"," two"," three"," four"," five"," six"," seven"," eight"," nine"),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),11,1))=0,CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),12,1)+1,"","one","two","three","four","five","six","seven","eight","nine"),"")))," "," ")&IF(FLOOR(A1,1)>1," "," "))&IF(ISERROR(FIND(".",A1,1)),""," point "&PROPER(IF(LEN(LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),2))=1,CHOOSE(1*LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),2),"One","Two","Three","Four","Five","Six","Seven","Eight","Nine")&" ","")&CONCATENATE(CHOOSE(MID(TEXT(INT(LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),2)),REPT(0,12)),11,1)+1,"",CHOOSE(MID(TEXT(INT(LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),2)),REPT(0,12)),12,1)+1,"One","One One","One Two","One Three","One Four","One Five","One Six","One Seven","One Eight","One Nine")&" ","Two","Three","Four","Five","Six","Seven","Eight","Nine"),IF(VALUE(MID(TEXT(INT(LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),2)),REPT(0,12)),11,1))>1,CHOOSE(MID(TEXT(INT(LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),2)),REPT(0,12)),12,1)+1,""," One"," Two"," Three"," Four"," Five"," Six"," Seven"," Eight"," Nine")&" ",IF(LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),2)="01","one ",IF(LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),1)="0",CHOOSE(MID(TEXT(INT(LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),2)),REPT(0,12)),12,1)+1,"","One","Two","Three","Four","Five","Six","Seven","Eight","Nine")&" ","")))))))

第四步:按 Enter 键,观察 A2 单元格中的数字如何优雅地演变成 B2 单元格中的单词。


使用公式将数字转换为单词


使用公式将数字转换为单词



第五步:若要转换其他数字,请向下拖动公式,揭开神奇蜕变的面纱。


向下拖动公式


向下拖动公式



我使用自定义函数的经验:

在探索自定义函数时,我非常欣赏它们带来的极简体验——无需复杂的 VBA 编码或繁琐的设置。只需一个简单的公式就能将数字转换为单词,为 Excel 增添了独特的功能。不过,需要注意的是:充分理解函数是关键。请在各种场景中进行测试以确保准确性。这一实用经验突出了函数的价值,同时也强调了谨慎使用以获得最佳结果的重要性。



第三部分:为什么要使用 WPS Office?


WPS Office 图标


WPS Office 图标



需要注意的是,我们目前探讨的方法不仅适用于 Microsoft Excel,也同样适用于 WPS Office 表格。不过,我们更诚挚地邀请你探索 WPS Office 带来的独特优势。以下是我们推荐你使用 WPS Office 来处理 Excel 转换工作的原因:

1. 价格:WPS Office 在不妥协功能的前提下,提供了一个价格亲民的替代方案,使其成为个人和专业用途的高性价比之选。

2. 兼容性:在 WPS Office 和 Microsoft Office 之间无缝交换文档,确保顺畅的协作与文档共享。

3. 功能:WPS Office 拥有一套媲美行业标准的全面功能,让你能够轻松完成各种任务。它还具备 AI 写作和 AI 文档翻译等 AI 智能功能。

4. 用户友好的界面:即使是新手,也能轻松上手 WPS Office。直观的界面确保了平缓的学习曲线和高效的工作流。

5. 发现隐藏的宝藏功能:深入阅读 WPS 官方博客,挖掘能提升你技能的宝藏内容。从高级技巧到创新解决方案,每一篇教程都将助力你更精通办公软件。 

6. 快速格式转换:为了提升你的工作效率,WPS Office 还能快速地将 Excel 转换为 PDF。 

7. AI 驱动的生产力提升:WPS AI 为你的日常任务提供强大助力——从在 Excel 中使用简单提示将数字转换为单词,到自动生成公式、总结文档,再到实时翻译文本,无所不能。

免费下载 Office
   
  • 免费使用 Word、Excel 和 PPT,无广告。

  • 使用强大的 PDF 工具包编辑 PDF 文件。

  • 类似 Microsoft 的界面。简单易学。100% 兼容。

  • 利用 WPS 丰富的免费 Word、Excel、PPT 和简历模板,大幅提升你的工作效率。

100% 安全
头像
Algirdas Jasaitis

第四部分:如何使用 WPS AI 在 Excel 中将数字转换为单词

在我们刚刚探讨的无 VBA 方法的基础之上,WPS AI 提供了一种更加直观的将数字转换为单词的方法——无需手动构建任何公式。这种由 AI 驱动的方法进一步简化了流程,让所有技能水平的用户都能轻松上手。


第一步:在一个空白单元格中,开始输入 =WPSAI,然后双击下拉菜单中的 WPSAI 函数。

双击 WPS AI
双击 WPS AI

第二步:在函数括号内,引用包含目标数字的单元格,然后添加提示词。


添加提示词
添加提示词


第三步:按 Enter 键,AI 将立即在该单元格中生成与数字对应的单词等效文本。

自动生成
自动生成

第四步:从第一个转换的单元格向下拖动填充柄,即可将相同的 AI 转换应用到列中所有剩余的数字上。

应用到其他单元格
应用到其他单元格


完成
完成



所选单元格中的数字将被转换为文本。

与受限于特定转换规则的静态无 VBA 公式不同,AI 能够理解自然语言提示词——因此,如果我需要切换到不同的风格,只需调整提示词即可,而无需重新构建公式。这也消除了记忆复杂语法或对嵌套函数进行故障排查的麻烦;AI 处理了繁重的工作,让我可以更专注于数据而不是操作机制。数据统计完成后,你还可以使用 WPS Office 的转换功能,包括将 Excel 转换为 PDF。 

关于在 Excel 中将数字转换为单词的常见问题解答

我可以反向将单词转换为数字吗?

当然可以!在 WPS Office 中使用 VBA 代码完全可以实现反向转换,即从单词转换为数字。虽然本次讨论的重点是将数字转换为单词,但值得注意的是,WPS Office 提供了多功能工具来处理双向的转换需求。

我可以一键将数字转换为单词吗?

当然可以,得益于 WPS Office 的卓越功能(使用 VBA 或内置的公式组合),一键将数字转换为单词轻而易举。这种简化的流程让你的任务变得更加轻松,从而为你节省宝贵的时间和精力。

什么是 VBA 以及如何快速学习它?

VBA 是 Microsoft 提供的一种编程语言,用于自动执行任务,并在诸如 Excel、Word 和 PowerPoint 等 Office 应用程序中创建自定义解决方案。

快速学习 VBA:

  • 基础知识:了解变量和循环等编程概念。

  • VBA 编辑器:在 Office 应用程序中打开它以编写代码。

  • 示例:学习简单的代码示例。

  • 录制宏:通过录制操作来学习。

  • 在线资源:使用教程和课程。

  • 练习:定期编写小型项目。

  • 文档:探索 Microsoft 的 VBA 官方文档。

  • 社区:参与在线论坛。

  • 构建:为实际任务创建你自己的宏。

  • 调试:学习修复代码错误。

  • 保持好奇心:不断探索和尝试。

掌握 VBA 可有效提高工作效率,并提供量身定制的解决方案。

如果在转换过程中文件损坏了该怎么办?

一般来说,不会出现文件损坏的问题。但是,如果转换过程中确实发生了文件损坏,请不要担心——你可以使用 WPS 文件修复工具来恢复 Excel 文件

总结

在本指南中,我们探讨了在 Excel 中将数字转换为单词的不同方法,重点介绍了 VBA 宏和自定义函数。我们为每种方法提供了清晰的分步说明和示例。在强调 WPS Office的优势时,我们突出了其与 Excel 的兼容性、用户友好的功能和实惠的价格,以及它只需一个快捷提示词即可简化数字到单词转换的强大 WPS AI。WPS 还为你提供了一个 xlsx 查看器,帮助你即时打开和查看 Excel 文件。 无论你是选择 VBA 还是自定义函数,本指南都能让你顺利完成数字到单词的转换,同时认识到在增强办公任务方面使用 WPS Office 的诸多优势。

100% 安全


陳文豪

10年辦公軟件產業經驗,專注於跨平台文件兼容性分析及生產力工具評測。追蹤我的專欄獲取最新WPS功能解析、企業數位轉型案例分享及AI辦公應用實測報告。