在 Excel 中将小写金额转大写转换为印度卢比及其他货币(2025 版)
以下是将数字转换为印度卢比(或其他任意货币)文字形式的方法。
处理发票、报价单、税务表单、支票或付款凭证等财务文件时,通常需同时以数字和大写文字形式列明金额,既彰显专业,又有效防范篡改或误读。
示例
虽然 Microsoft Excel 未内置小写金额转大写的功能,但借助 VBA、LAMBDA 函数或全能型 Kutools for Excel 加载项,即可轻松实现多种高效转换方式。
使用 VBA 将小写金额转大写转换为印度卢比(适用于所有 Microsoft 版本)
使用 LAMBDA 函数将小写金额转大写转换为印度卢比(仅限 Microsoft 365)
将数字转换为 USD、EUR 及 30+ 其他货币(适用于所有 Microsoft 版本)
使用 VBA 将小写金额转大写转换为印度卢比(适用于所有 Microsoft 版本)
无论您使用哪个版本的 Excel,VBA(Visual Basic for Applications)都为您提供了一种灵活自定义的方式,将数字金额转换为文字,并支持印度数字系统(如千、十万、千万)。
步骤 1. 按下 Alt+F11,即可打开 VBA 编辑器(Microsoft Visual Basic for Applications 窗口)。

步骤 2. 转到插入 > 模块。

步骤 3. 将 VBA 代码粘贴到模块中。
将数字转换为印度卢比文字形式
Function ConvertToRupees(ByVal MyNumber)
'UpdatebyExtendoffice
Dim Units As String, SubUnits As String, TempStr As String
Dim DecimalPlace As Integer, Count As Integer
Dim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Lakh "
Place(4) = " Crore "
MyNumber = Trim(Str(MyNumber))
DecimalPlace = InStr(MyNumber, ".")
If DecimalPlace > 0 Then
SubUnits = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
Do While MyNumber <> ""
TempStr = GetHundreds(Right(MyNumber, 3))
If TempStr <> "" Then Units = TempStr & Place(Count) & Units
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
ConvertToRupees = "Rupees " & Application.WorksheetFunction.Trim(Units)
If SubUnits <> "" Then
ConvertToRupees = ConvertToRupees & " and " & SubUnits & " Paise"
End If
ConvertToRupees = ConvertToRupees & " Only"
End Function
Private Function GetHundreds(ByVal MyNumber)
Dim Result As String
If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)
If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If
If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If
GetHundreds = Result
End Function
Private Function GetTens(TensText)
Dim Result As String
If Val(Left(TensText, 1)) = 1 Then
Select Case Val(TensText)
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"
End Select
Else
Select Case Val(Left(TensText, 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 "
End Select
Result = Result & GetDigit(Right(TensText, 1))
End If
GetTens = Result
End Function
Private Function GetDigit(Digit)
Select Case Val(Digit)
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

步骤 4. 保存更改并返回 Excel。
步骤 5. 请选择一个单元格,并输入以下公式:
按 Enter 键

💡 提示:此方法支持小数(派士),且可离线使用。
使用 VBA 的局限性
- 请将工作簿保存为启用宏的文件(.xlsm)。
- 在某些环境中,宏可能会因安全设置而被阻止。
将小写金额转大写转换为其他货币(USD、EUR 等)
若要为其他货币(如“美元”或“欧元”)自定义输出,只需调整 VBA 函数中的字符串值即可。以下是简化且更灵活的函数版本。
灵活的 VBA 代码模板(自定义货币)
'UpdatebyExtendoffice
Public Function NumberToWordsCustom(ByVal num As Double, Optional ByVal currency2 As String, Optional ByVal subCurrency As String) As String
Dim result As String
Dim dollars As Long
Dim cents As Long
dollars = Int(num)
cents = Round((num - dollars) * 100)
If Len(currency2) = 0 Then currency2 = "Dollars"
If Len(subCurrency) = 0 Then subCurrency = "Cents"
result = currency2 & " " & SpellNumber_English(dollars)
If cents > 0 Then
result = result & " and " & SpellNumber_English(cents) & " " & subCurrency
End If
NumberToWordsCustom = result & " Only"
End Function
Private Function SpellNumber_English(ByVal MyNumber As Long) As String
Dim Units As Variant, Tens As Variant, Teens As Variant
Dim Place() As String
Dim TempStr As String
Dim Count As Integer
Dim t As String
Dim StrNumber As String
Dim n As Integer
Place = Split(" Thousand Million Billion", " ")
Units = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine")
Tens = Array("", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety")
Teens = Array("Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen")
StrNumber = Trim(Str(MyNumber))
Count = 0
Do While StrNumber <> ""
n = Val(Right(StrNumber, 3))
If n <> 0 Then
t = ConvertHundreds(n, Units, Tens, Teens)
If Count > 0 Then t = t & " " & Place(Count - 1)
TempStr = t & " " & TempStr
End If
If Len(StrNumber) > 3 Then
StrNumber = Left(StrNumber, Len(StrNumber) - 3)
Else
StrNumber = ""
End If
Count = Count + 1
Loop
SpellNumber_English = Trim(TempStr)
End Function
Private Function ConvertHundreds(ByVal n As Integer, Units As Variant, Tens As Variant, Teens As Variant) As String
Dim result As String
If n >= 100 Then
result = Units(Int(n / 100)) & " Hundred "
n = n Mod 100
End If
If n >= 20 Then
result = result & Tens(Int(n / 10)) & " "
n = n Mod 10
ElseIf n >= 10 Then
result = result & Teens(n - 10) & " "
n = 0
End If
If n > 0 Then
result = result & Units(n)
End If
ConvertHundreds = Trim(result)
End Function
VBA 公式示例:

其他货币的 VBA 公式示例:
=NumberToWordsCustom(A2, "欧元“, "欧分“)
=NumberToWordsCustom(A2, "英镑“, "便士“)
该代码灵活便捷,只需传入所需货币及其子单位即可。
将工作簿另存为启用宏的文件
若使用 VBA,请务必将工作簿保存为启用宏的格式,否则关闭文件时代码将会丢失。
步骤 1. 转到文件 > 另存为

步骤 2. 选择保存位置,并选择文件类型:Excel 启用宏的工作簿(*.xlsm)。

步骤 3. 单击保存。
✅ 您的自定义函数(例如 =ConvertToRupees(A2))现已永久保存,可随时重复使用。
使用 LAMBDA 函数将小写金额转大写转换为印度卢比(仅限 Microsoft 365)
Excel 365 用户可使用 LAMBDA——这项全新功能让您无需 VBA 即可定义自定义公式。
🪄 什么是 LAMBDA?
LAMBDA 是 Excel 中的一项强大功能,让您无需编写任何代码或宏,就能像使用 SUM、IF 等内置函数一样,通过公式创建自己的自定义函数。它能有效简化重复性逻辑,让您的电子表格更简洁、更易于维护。
步骤 1:转到公式> 名称管理器 并单击。

步骤 2:创建一个新名称。
单击新建按钮。

输入一个名称。
示例:RupeeToWords

步骤 3:将此 LAMBDA 公式粘贴到引用位置字段中:
=LAMBDA(n, LET( units, {"","一",“二“,“三“,“四“,“五“,“六“,“七“,“八“,“九“}, teens, {"十","十一","十二","十三","十四","十五","十六","十七","十八","十九"}, tens, {"","",“二十“,"三十","四十","五十","六十","七十","八十","九十"}, num, INT(n), paise, ROUND((n - INT(n)) * 100, 0), ConvertTwo, LAMBDA(x, IF(x 0, " “ & INDEX(units, MOD(x,10)+1), "") ) ) ), ConvertThree, LAMBDA(x, IF(x=0, "", IF(x 0, “ “ & ConvertTwo(MOD(x,100)), ““) ) ) ), words, IF(num=0, "零“, TEXTJOIN(“ “, TRUE, IF(INT(num/10000000)>0, ConvertTwo(INT(num/10000000)) & “ 千万“, ““), IF(MOD(INT(num/100000),100)>0, ConvertTwo(INT(MOD(num,10000000)/100000)) & “ 十万“, ““), IF(MOD(INT(num/1000),100)>0, ConvertTwo(INT(MOD(num,100000)/1000)) & “ 千“, ““), IF(MOD(INT(num/100),10)>0, INDEX(units, INT(MOD(num,1000)/100)+1) & “ 百“, ““), IF(MOD(num,100)>0, ConvertTwo(MOD(num,100)), ““) ) ), result, "卢比 “ & words & IF(paise>0, “ 和 “ & ConvertTwo(paise) & “ 派士“, ““) & “ 整“, result ))单击确定即可保存新建名称。

步骤 3. 关闭名称管理器,返回 Excel。
步骤 4. 在任意单元格中输入以下公式:
按下 Enter 键。

👀 完整的 LAMBDA 函数代码,轻松应对千万、十万、千位及小数处理。
将数字转换为 USD、EUR 及 30+ 其他货币(适用于所有 Microsoft 版本)
如需最高效、专业的解决方案,请使用 Kutools for Excel 的小写金额转大写工具。这款强大工具支持:
🌍 超过 30 种货币,包括:
- 美元(USD)
- 欧元(EUR)
- 人民币(CNY)
- 英镑(GBP)
- 等。
步骤 1. 选择您要转换的单元格。

步骤 2. 转到 Kutools > 内容 > 小写金额转大写

步骤 3. 选择目标货币,然后单击“确定”。

数字将转换为指定货币的大写形式。

😁 提示:如果希望直接转换小写金额转大写,请勾选不转换为货币选项,结果将显示为:

各方法适用场景
如果您需要灵活且可编程的解决方案,并熟悉宏,不妨使用 VBA。
- 如果您使用的是 Excel 365,且仅偶尔需要转换印度卢比金额,不妨试试 LAMBDA 函数。这是一种轻量级、可共享的解决方案,无需宏或外部工具,非常适合处理简单或个人任务。
- 如果您希望获得最简单、最快捷且功能最全面的无代码解决方案,请选择 Kutools for Excel。Kutools 在以下场景中尤为实用:
- 您需要处理多种货币。
- 需要批量转换大量数据中的数值。
- 希望使用无需宏、专业级的工具,提供 30 多种货币选项,并由 AI 驱动性能。
最佳办公效率工具
| 🤖 | KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮或标记重复项 | 删除空白行 | 合并列或单元格且不丢失数据 | 不使用公式的四舍五入…… | |
| 高级 LOOKUP:多条件 VLookup | 多值 VLookup | 跨多工作表 VLookup | 模糊查找…… | |
| 高级下拉列表:快速创建下拉列表 | 级联下拉列表 | 多选下拉列表…… | |
| 列管理器:添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列…… | |
| 特色功能:网格聚焦 | 设计视图 |增强编辑栏 | 工作簿和表管理器 | 资源库(自动文本)| 日期提取 | 汇总工作表 | 加密/解密单元格 | 按列表发送邮件 | 超级筛选 | 特殊筛选(筛选粗体单元格/斜体/删除线……) ...... | |
| 精选 15 工具集:12 文本工具(添加文本,删除特定字符,……)| 50+ 图表 类型(甘特图,……)| 40+ 实用公式(基于生日计算年龄,……)| 19 插入工具(插入二维码,从路径插入图片,……)| 12 转换工具(小写金额转大写,汇率转换,……)| 7 合并和拆分工具(高级合并行,分割单元格,……)|……更多 |
使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……
Office Tab 为 Office 带来标签式界面,让您的工作更轻松
- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读。
- 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
- 将您的工作效率提升 50%,每天减少数百次鼠标点击!
所有 Kutools 插件,一个安装程序
Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。
- 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
- 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
- 协同效果更佳— 在多个 Office 应用中实现高效协同
- 30 天全功能试用— 无需注册,无需信用卡
- 超值之选— 比单独购买插件更省钱

