0

0

Excel表格怎么把数字转换为大写金额_Excel数字转大写金额方法

看不見的法師

看不見的法師

发布时间:2025-10-21 22:10:01

|

543人浏览过

|

来源于php中文网

原创

通过VBA自定义函数可实现Excel中数字转大写金额,先启用开发者工具并插入模块,复制NumToRMB及SubThousand函数代码,保存后在单元格输入=NumToRMB(A1)即可将数值转为“壹仟贰佰叁拾肆元伍角陆分”格式,适用于财务场景,需启用宏生效。

excel表格怎么把数字转换为大写金额_excel数字转大写金额方法

在Excel中将数字转换为大写金额(如“壹仟贰佰叁拾肆元整”),系统本身没有内置函数直接实现,但可以通过自定义VBA函数来完成。以下是具体操作方法:

启用开发者工具

要使用VBA功能,先确保“开发者”选项卡已显示在Excel菜单栏中:

• 文件 → 选项 → 自定义功能区 → 勾选“开发者”
• 点击确定后,顶部菜单会出现“开发者”标签

插入VBA自定义函数

通过编写VBA代码创建一个将数字转为大写金额的函数:

• 点击“开发者”选项卡 → Visual Basic
• 在弹出窗口中,点击“插入” → 模块
• 将以下代码复制粘贴到代码窗口中:

Function NumToRMB(ByVal MyNumber)
Dim RMB, Yuan, Jiao, Fen, Temp
Dim Han(1 To 9) As String
Han(1) = "零壹贰叁肆伍陆柒捌玖"
RMB = ""
If Not IsNumeric(MyNumber) Then
    NumToRMB = "非数字"
    Exit Function
End If
MyNumber = Round(MyNumber, 2)
Yuan = Int(MyNumber): Jiao = Int((MyNumber - Yuan) * 10): Fen = (MyNumber - Yuan - Jiao / 10) * 100
If Yuan = 0 And Jiao = 0 And Fen = 0 Then
    NumToRMB = "零元整"
    Exit Function
End If
' 处理亿位
If Yuan >= 100000000 Then
    Temp = Int(Yuan / 100000000)
    RMB = RMB & SubThousand(Temp) & "亿"
    Yuan = Yuan - Temp * 100000000
End If
' 处理万位
If Yuan >= 10000 Then
    Temp = Int(Yuan / 10000)
    RMB = RMB & SubThousand(Temp) & "万"
    Yuan = Yuan - Temp * 10000
End If
RMB = RMB & SubThousand(Yuan) & "元"
' 角分处理
If Jiao > 0 Or Fen > 0 Then
    If Jiao > 0 Then RMB = RMB & Mid(Han(Jiao + 1), 2, 1) & "角"
    If Fen > 0 Then RMB = RMB & Mid(Han(Fen + 1), 2, 1) & "分"
Else
    RMB = RMB & "整"
End If
NumToRMB = RMB
End Function

Function SubThousand(ByVal Num)
Dim Han(1 To 9) As String
Dim Digit, Temp, i
Han(1) = "零壹贰叁肆伍陆柒捌玖"
Han(2) = "元拾佰仟"
Temp = ""
Digit = Right("000" & Num, 4)
For i = 1 To 4
    Temp = Temp & Mid(Han(1), Asc(Mid(Digit, i, 1)) - 48 + 1, 1) & Mid(Han(2), i, 1)
Next
' 处理连续零和单位问题
Do While InStr(Temp, "零零") > 0
    Temp = Replace(Temp, "零零", "零")
Loop
Temp = Replace(Temp, "零元", "零")
Temp = Replace(Temp, "零拾", "零")
Temp = Replace(Temp, "零佰", "零")
Temp = Replace(Temp, "零仟", "零")
Temp = Replace(Temp, "零万", "万")
Temp = Replace(Temp, "零亿", "亿")
Temp = Replace(Temp, "亿万", "亿零")
If Right(Temp, 1) = "零" Then Temp = Left(Temp, Len(Temp) - 1)
If Left(Temp, 1) = "零" Then Temp = Mid(Temp, 2)
If Temp = "" Then Temp = "零"
SubThousand = Temp
End Function

在表格中使用函数

保存VBA代码后,返回Excel表格,在目标单元格输入公式:

阿里云-虚拟数字人
阿里云-虚拟数字人

阿里云-虚拟数字人是什么? ...

下载
• 假设A1单元格是金额数字(如:1234.56)
• 在B1输入公式:=NumToRMB(A1)
• 回车后即可看到结果:“壹仟贰佰叁拾肆元伍角陆分”

该函数支持整数、小数,自动处理“元整”、“角分”等格式,适用于财务报表、发票打印等场景。

基本上就这些,只要按步骤操作,就能实现数字到中文大写金额的自动转换。注意每次打开文件需启用宏才能使用该功能。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

312

2023.08.02

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

713

2023.08.22

while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

81

2023.09.25

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

312

2023.08.02

int占多少字节
int占多少字节

int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

522

2024.08.29

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

49

2025.08.29

C++中int的含义
C++中int的含义

本专题整合了C++中int相关内容,阅读专题下面的文章了解更多详细内容。

190

2025.08.29

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

312

2023.08.02

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

74

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 10.3万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号