excel如何转换成大写金额

告别手写!Excel如何转换成大写金额,财务小白也能秒懂的神奇操作!

别提了,我刚入行那会儿,就是这么过来的。手边一本财务手册翻得稀烂,就为了核对那个大写数字。写慢了,怕耽误事儿;写快了,就容易出错。最尴尬的是,有时候自己写了觉得没问题,结果被人事或者财务的同事一眼看出猫腻,指着你的大写金额说:“哎呀,这里不对,少了个零!”或者“这个万字怎么写成繁体了?”那个脸红啊,恨不得钻地缝。

那时候就想,Excel这么强大,它难道不能帮我干点儿这种机械又容易出错的活儿吗?把阿拉伯数字自动变成大写中文金额,多省事儿啊!答案是:能!而且方法不止一种,但最靠谱、最常用的那个,我今天就掰开了、揉碎了,用大白话跟你讲讲,保证你这个“财务小白”(或者任何需要跟钱打交道的人)也能秒懂,从此告别手写噩梦,效率直接翻倍!

咱们先说最直接、最根本的方法——用Excel的“魔法”,也就是VBA(Visual Basic for Applications)。别一听VBA就头大,觉得那是程序员的事儿。嘿,咱们只需要当个“魔法使用者”,把别人写好的“魔法咒语”(代码)拿过来用就行!简单得很。

第一步:请出“开发工具”选项卡

默认情况下,Excel的菜单栏里可能没有“开发工具”这个选项。它可能害羞,藏起来了。咱们得去把它请出来。

打开你的Excel表格,找到左上角的“文件”选项。点进去,然后在左侧的列表里找到“选项”(通常在最下面)。弹出来一个“Excel选项”的小窗口,密密麻麻的,别慌。在左侧的菜单里找“自定义功能区”。点它!

然后呢,看看右边那个大大的框框,里面列着各种主选项卡。在那个列表里,你大概能看到一个叫做“开发工具”的选项,它前面的小方框可能没打勾。点那个小方框,把它勾上!然后点右下角的“确定”。

好了,回到Excel主界面,看看你的菜单栏,是不是多了一个叫做“开发工具”的新朋友?恭喜你,魔法的大门已经打开了一半!

第二步:召唤VBA编辑器,贴上“魔法咒语”

点开这个新出现的“开发工具”选项卡,在左边找到一个叫做“Visual Basic”的按钮,点它!“嗖”一下,会弹出一个新的窗口,这就是VBA编辑器了。看起来是不是有点像老式的代码编辑界面?没错,就是这里!

在这个VBA编辑器的左侧,你会看到一个叫做“工程”的窗口。找到你的当前工作簿的名字(通常是“VBAProject (你的文件名.xlsx)”),展开它。然后右键点击“Microsoft Excel 对象”或者任意位置,选择“插入” -> “模块”。

一个新的空白窗口就出现在右边了,这就是咱们要写“魔法咒语”的地方。现在,把下面这段“咒语”复制粘贴到这个空白模块里:

“`vba
Function RMB(n)
‘将阿拉伯数字翻译成中文大写财务记账形式
Dim i, j, k, nL, nR, i0 As Boolean, iR As Boolean, ss As String
Const nS = “零壹贰叁肆伍陆柒捌玖”
Const uS1 = “元万亿兆”
Const uS2 = “角分”
Const uS3 = “拾佰仟”

If Abs(n) >= 10 ^ 16 Then RMB = “太大了”: Exit Function
n = Round(n, 2)
If n < 0 Then ss = “负” Else ss = “”
n = Trim(Str(Abs(n)))
i = InStr(n, “.”)
If i > 0 Then
nL = Left(n, i – 1): nR = Mid(n, i + 1)
Else
nL = n: nR = “”
End If

i0 = True
For i = 1 To Len(nL)
j = CInt(Mid(nL, i, 1))
k = Len(nL) – i
If j <> 0 Then
ss = ss + Mid(nS, j + 1, 1) + Mid(uS3, k Mod 4 + 1, 1)
i0 = False
Else
If k Mod 4 = 0 Then
If Not i0 Then ss = ss + Mid(uS1, k \ 4 + 1, 1) Else ss = ss + “元”
i0 = True
Else
If Not i0 Then ss = ss + “零”
i0 = True
End If
End If
If k Mod 4 = 0 And k <> 0 Then ss = ss + Mid(uS1, k \ 4 + 1, 1)
Next

iR = False
For i = 1 To Len(nR)
j = CInt(Mid(nR, i, 1))
If j <> 0 Then
ss = ss + Mid(nS, j + 1, 1) + Mid(uS2, i, 1)
iR = True
Else
If Not iR Then
If Len(nR) > i Then ss = ss + “零”
iR = True
End If
End If
Next

If nR = “” Then ss = ss + “整”
If Right(ss, 1) = “零” Then ss = Left(ss, Len(ss) – 1) ‘ 去掉末尾的零
If Right(ss, 1) = “元” And Len(nR) > 0 And Right(ss, 2) <> “元整” Then ss = ss + “整” ‘ 没有角分但有小数位时加整,例如 10.00
If Left(ss, 1) = “零” Then ss = Mid(ss, 2) ‘ 去掉开头的零
If ss = “整” And n = 0 Then ss = “零元整” ‘ 0处理
If n > 0 And InStr(ss, “元”) = 0 And InStr(ss, “角”) = 0 And InStr(ss, “分”) = 0 Then ss = ss + “元” ‘ 只有整数没有单位
If Left(ss, 1) = “元” And n <> 0 Then ss = “零” + ss ‘ 0.XX的情况处理

‘ 处理壹拾元的特殊情况,如 10 应该显示 壹拾元整
If ss Like “壹拾” And Not (ss Like “壹拾元” Or ss Like “壹拾角” Or ss Like “壹拾分“)Then
ss = Mid(ss, 2) ‘去掉开头的“壹”
End If

RMB = ss

End Function
“`
(这段代码是我从网上找了个比较常用、比较完整的版本,能处理大多数情况,包括角分、零、整等等。感谢写这段代码的大神!)

粘贴完代码,点VBA编辑器左上角的那个小软盘图标(保存按钮),保存一下。它会问你保存格式,划重点!一定要选择“Excel 启用宏的工作簿(*.xlsm)”这个格式!普通的不行!因为咱们的代码就是宏,普通格式存不了。

第三步:在表格里使用这个“魔法”

关掉VBA编辑器,回到你的Excel表格。现在,你的Excel已经学会怎么把数字变大写金额了!怎么用呢?就像用Excel自带函数一样简单!

假设你的数字金额在A1单元格,你想在B1单元格显示它的大写。那么,在B1单元格里输入:

=RMB(A1)

看到没?RMB就是咱们刚才那段代码里Function后面的名字,你可以把它看作是你自定义的一个新函数。输入完公式,按下回车键,铛铛铛!A1单元格的数字金额,就自动变成规范的中文大写啦!

你可以把这个公式复制到其他需要转换金额的单元格,瞬间,所有的数字都变成了大写,而且是精确到“分”哦!

一些过来人的小叮嘱:

  1. 保存格式别弄错! 记住是 .xlsm,否则下次打开,你的“魔法咒语”就失效了。
  2. 启用宏! 有时候打开 .xlsm 文件,Excel会弹出安全警告,说什么“已禁用宏”。别怕,点那个“启用内容”或者“启用宏”的按钮就行。这是因为VBA代码也可能被恶意利用,所以Excel会提醒你一下,咱们自己写的或者确定来源的代码是安全的。
  3. 数字格式要规范! 确保你要转换的数字是标准的数字格式,不是文本格式。如果数字左边有个绿色小三角,可能是文本数字,点一下那个小三角,选择转换为数字格式。
  4. 负数、零的处理: 咱们上面那个代码,对于负数会加上“负”字。对于0会显示“零元整”。对于只有小数的(比如0.5),会显示“零元伍角”。对于整数末尾是零的(比如120),会显示“壹佰贰拾元整”。对于中间有零的(比如101),会显示“壹佰零壹元整”。这些基本都能覆盖财务记账的需求。

看吧,是不是没想象中那么复杂?只要操作一遍,你会发现,打开“开发工具”,插入模块,粘贴代码,保存,然后像用SUM函数一样使用=RMB(A1),整个过程也就几分钟!但它帮你省下的时间和避免的错误,那可就数不清了。

从此以后,填报销单、开发票、做账,再也不用对着数字金额挠头了。轻轻一拉填充柄,大写金额哗啦啦就出来了。那种感觉,就像突然拥有了点石成金的能力,简直不要太爽!

所以啊,别再傻傻地一个字一个字敲或者手写了。赶紧把这个小技巧学起来,让Excel成为你最得力的财务小助手吧!它不仅仅是个表格工具,更是能帮你提高效率、减少错误的超级武器!赶紧试试看,你会感谢我今天告诉你的这个小秘密的!

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注