如何在Excel中拼出数字或将数字转换为英语单词?
假设您有很多价格金额数字,现在您需要将其转换或拼写为文本字符串。 例如,转换 3.55 到英语单词 一百二十三美元和五十五美分。 在Excel中,没有有效的工具来解决此问题,而是使用冗长而复杂的VBA代码。 在本文中,我将向您介绍一些处理它的方法。
用VBA代码拼出数字或将数字转换为英文单词
拼写或将数字转换为英语单词 Kutools for Excel
用VBA代码拼出数字或将数字转换为英文单词
下面的VBA长代码可以帮助您将数字拼写为文本字符串。 进行如下操作:
1。 按住 ALT + F11 键,然后打开 Microsoft Visual Basic应用程序 窗口。
2。 点击 插页 > 模块,然后将以下宏粘贴到 模块窗口。
VBA:在Excel中将货币数字拼写为英文单词
Function SpellNumberToEnglish(ByVal pNumber)
Updateby20131113
Dim Dollars, Cents
arr = Array("", "", " Thousand ", " Million ", " Billion ", " Trillion ")
pNumber = Trim(Str(pNumber))
xDecimal = InStr(pNumber, ".")
If xDecimal > 0 Then
Cents = GetTens(Left(Mid(pNumber, xDecimal + 1) & "00", 2))
pNumber = Trim(Left(pNumber, xDecimal - 1))
End If
xIndex = 1
Do While pNumber <> ""
xHundred = ""
xValue = Right(pNumber, 3)
If Val(xValue) <> 0 Then
xValue = Right("000" & xValue, 3)
If Mid(xValue, 1, 1) <> "0" Then
xHundred = GetDigit(Mid(xValue, 1, 1)) & " Hundred "
End If
If Mid(xValue, 2, 1) <> "0" Then
xHundred = xHundred & GetTens(Mid(xValue, 2))
Else
xHundred = xHundred & GetDigit(Mid(xValue, 3))
End If
End If
If xHundred <> "" Then
Dollars = xHundred & arr(xIndex) & Dollars
End If
If Len(pNumber) > 3 Then
pNumber = Left(pNumber, Len(pNumber) - 3)
Else
pNumber = ""
End If
xIndex = xIndex + 1
Loop
Select Case Dollars
Case ""
Dollars = "No Dollars"
Case "One"
Dollars = "One Dollar"
Case Else
Dollars = Dollars & " Dollars"
End Select
Select Case Cents
Case ""
Cents = " and No Cents"
Case "One"
Cents = " and One Cent"
Case Else
Cents = " and " & Cents & " Cents"
End Select
SpellNumberToEnglish = Dollars & Cents
End Function
Function GetTens(pTens)
Dim Result As String
Result = ""
If Val(Left(pTens, 1)) = 1 Then
Select Case Val(pTens)
Case 10: Result = "Ten"
Case 11: Result = "Eleven"
Case 12: Result = "Twelve"
Case 13: Result = "Thirteen"
Case 14: Result = "Fourteen"
Case 15: Result = "Fifteen"
Case 16: Result = "Sixteen"
Case 17: Result = "Seventeen"
Case 18: Result = "Eighteen"
Case 19: Result = "Nineteen"
Case Else
End Select
Else
Select Case Val(Left(pTens, 1))
Case 2: Result = "Twenty "
Case 3: Result = "Thirty "
Case 4: Result = "Forty "
Case 5: Result = "Fifty "
Case 6: Result = "Sixty "
Case 7: Result = "Seventy "
Case 8: Result = "Eighty "
Case 9: Result = "Ninety "
Case Else
End Select
Result = Result & GetDigit(Right(pTens, 1))
End If
GetTens = Result
End Function
Function GetDigit(pDigit)
Select Case Val(pDigit)
Case 1: GetDigit = "One"
Case 2: GetDigit = "Two"
Case 3: GetDigit = "Three"
Case 4: GetDigit = "Four"
Case 5: GetDigit = "Five"
Case 6: GetDigit = "Six"
Case 7: GetDigit = "Seven"
Case 8: GetDigit = "Eight"
Case 9: GetDigit = "Nine"
Case Else: GetDigit = ""
End Select
End Function
3。 然后保存代码,并返回工作表,在相邻的单元格B2中,输入公式 = SpellNumberToEnglish(A1)
,请参见屏幕截图:
4。 然后按 输入
键,然后选择单元格B2,然后根据需要将填充手柄拖到包含此公式的范围内。 并且所有货币编号均已拼写为英文单词。 看截图:
备注:由于它们是公式,因此当您需要复制并粘贴它们时,请粘贴为值。
拼写或将数字转换为英语单词 Kutools for Excel
也许上面的长代码会让您生气,请不要担心,在这里我可以为您提供一种简单快速的解决方法。 随着 Kutools for Excel“ 数字到单词 功能,您可以快速方便地将数字转换为文本字符串。
Kutools for Excel- 包括 300 多个方便的 Excel 工具。 全功能免费试用 30-天,无需信用卡! 立即行动吧!
1。 选择要拼写的范围号,然后单击 Kutools > 内容 > 数字到单词
.
2。 在弹出的对话框中,选择 英语 来自 语言。 您可以从右侧预览结果 预览
窗格。 看截图:
3。 然后点击 Ok or 使用
。 并且所有价格金额数字都已转换为原始范围内的文本字符串。
备注:如果您只想将数字转换为英文单词(而非货币),请检查 不转换为货币
复选框。
这个奇妙的功能 数字到单词 可以轻松地将货币数字转换为英语或中文的货币文本,例如将32.01转换为“ XNUMX美元和XNUMX美分”或“叁拾贰元零壹分”。 免费试用!
演示: 将货币数字拼写为英文单词
最佳办公生产力工具
将小时转化为分钟 Kutools for Excel!
准备好增强您的 Excel 任务了吗? 利用的力量 Kutools for Excel - 您终极的节省时间的工具。 简化复杂的任务并像专业人士一样浏览数据。 以闪电般的速度体验 Excel!
为什么需要 Kutools for Excel
🛠️ 超过 300 项强大功能: Kutools 包含 300 多项高级功能,可简化您在 1500 多种场景中的工作。
📈 卓越的数据处理能力:合并单元格、删除重复项并执行高级数据转换 - 所有这些都不费吹灰之力!
⏱️ 高效的批量操作:当你可以聪明地工作时,为什么还要付出额外的努力呢? 轻松批量导入、导出、组合和调整数据。
📊 可定制的图表和报告:访问各种附加图表并生成富有洞察力的报告。
🗄️ 强大的导航窗格:通过强大的列管理器、工作表管理器和自定义收藏夹获得优势。
📝 七种类型的下拉列表:通过各种功能和类型的下拉列表使数据输入变得轻而易举。
🎓 用户友好:对于初学者来说轻而易举,对于专家来说是一个强大的工具。
立即下载,与 Excel 一起穿越时空!
阅读更多
免费下载... 采购...
Office Tab 为 Office 带来选项卡式界面,让您的工作更轻松
在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
每天将您的工作效率提高50%,并减少数百次鼠标单击!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。