2024年5月10日发(作者:)

巧用Excel 轻松转换人民币大小写 如何加密公式(详见第二章)

第一章

工作表中很多数据都是由公式计算生成的,那么如何让别人只看到计算的结

果,而将使用的公式隐藏起来呢?今天我们就向大家介绍使用宏来解决这一问

题。

一、创建宏

启动Excel,依次选择“工具”—“宏”—“录制新宏”,在打开的窗口中输

入宏的名称,并把“保存在”项设为“个人宏工作簿”,单击“确定”按钮进入

宏录制模式。此时我们可以在当前窗口中看到宏录制的工具栏,单击“停止录制”

退出宏的录制。

退出后,在Excel中按下“Alt+F11”键,在打开的VB编辑窗口中选择

“VBAProject()”—“模块”—“模块1”,然后将右侧窗口中

的内容替换成:

Sub 密码保护() //宏的名称

ect ("888888") //默认密码

= False

lCells(xlCellTypeFormulas, 23).Select

= True

aHidden = True

t ("123456")

Selection = xlUnlockedCells

End Sub

做好之后保存设置退出编辑窗口,IT八哥网()提醒大

家,在实际的操作过程中需要将默认的888888换成自己的密码,以免造成泄露。

二、应用宏

在Excel中打开“工具”菜单中的“自定义”命令,在“命令”选项卡的“类

别”中选择“宏”,在“命令”中选择“自定义按钮”,并将其拖放到工具栏上,

单击工具栏上的按钮,在弹出的窗口中选择我们创建的宏名并保存设置。

至此,我们要加密时只需单击该按钮,就可以将当前工作表保护起来,并且

默认密码为888888,怎么样这样的操作是不是够方便呢。

第二章

人民币金额大写转换是财务和会计领域的热点问题,网络提供此问题的方法

很多,主要有VBA、自定义函数、多种函数嵌套等。实践检验,通过函数嵌套

最为方便。而函数嵌套又很多种,本文中提供的几个公式最为方便,建议需要的

用户使用此方法。

Excel可以制作各种专业的会计报表,但是很多会计人员都无法准确而快速

地将会计报表中的小写金额转化为大写金额,如果手工输入这些大写金额,或者

或少总会出现种错误,并且输入的速度慢了很多,这样就大大影响了工作效率。

一些对Excel技术相对熟练的会计人员都是将数值转换成人民币中文大写金额,

一般是采用将单元格格式自定义为"[dbnum2]&元"这种方法。但是在输入带有小

数的数值时却出现了问题,比如在输入123.4的时候,变为"壹佰贰拾叁.肆元",

这样子是不符合财务格式的,应该是"壹佰贰拾叁元肆角"才对。那么能不能在

Excel中实现将任意数值转为人民币大写金额呢?

经过多位Excel技术精通人士多年对此问题进行研究,目前已找到解决此类

问题的方法,其中通过Excel函数多次嵌套可以轻松解决人民币金额从小写转换

大写,下面的方法都可一试。

假定A2单元格是需要转换成大写金额的小写数字。

=IF(ABS(A2)<0.005,"",IF(A2<0,"负

",)&IF(INT(ABS(A2)),TEXT(INT(ABS(A2)),"[dbnum2]")&"元

",)&IF(INT(ABS(A2)*10)-INT(ABS(A2))*10,TEXT(INT(ABS(A2)*10)-INT(ABS(

A2))*10,"[dbnum2]")&"角",IF(INT(ABS(A2))=ABS(A2),,IF(ABS(A2)<0.1,,"零

")))&IF(ROUND(ABS(A2)*100-INT(ABS(A2)*10)*10,),TEXT(ROUND(ABS(A2)*

100-INT(ABS(A2)*10)*10,),"[dbnum2]")&"分","整"))。

仔细检查公式输入无误后,按回车键即可将A2单元格中人民币小写金额转

换为人民币大写金额。

经检验,下面的公式也很好:

在EXCEL中,假设A1为数字格式单元格,在任意单元格内粘贴下面公式即可

显示大定金额:

=IF(A1<=0,,TEXT(INT(A1),"[dbnum2]人民币G/通用格式")&"元

"&IF(INT(A1*10)-INT(A1)*10=0,IF(INT(A1)*(INT(A1*100)-INT(A1*10)*10)=0,"

","零"),TEXT(INT(A1*10)-INT(A1)*10,"[dbnum2]")&"角

")&IF((INT(A1*100)-INT(A1*10)*10)=0,"整

",TEXT((INT(A1*100)-INT(A1*10)*10),"[dbnum2]")&"分"))

假如不需要“人民币”几个字,在公式里直接删除这几个字即可!

下面的公式也可一试,我已经试过了,挺好,就是公式长了点。

假定你要在A5输入阿拉佰数字,B5转换成中文大写金额(含元角分),请在B5单元

格输入如下公式:

=IF((INT(A5*10)-INT(A5)*10)=0,TEXT(INT(A5),"[DBNum2]G/通用格式

")&"元"&IF((INT(A5*100)-INT((A5)*10)*10)=0,"整","零

"&TEXT(INT(A5*100)-INT(A5*10)*10,"[DBNum2]G/通用格式")&"分

"),TEXT(INT(A5),"[DBNum2]G/通用格式")&"元

"&IF((INT(A5*100)-INT((A5)*10)*10)=0,TEXT((INT(A5*10)-INT(A5)*10),"[DBN

um2]G/通用格式")&"角整",TEXT((INT(A5*10)-INT(A5)*10),"[DBNum2]G/通用

格式")&"角"&TEXT(INT(A5*100)-INT(A5*10)*10,"[DBNum2]G/通用格式")&"分

"))

注:可先将公式复制到你要显示大写金额的单元格,然后用"替换"功能将公式

中的"A5"替换成你存放小写数字的单元格地址。

下面公式中句中的B4为小写的单元格数,数值大到几百亿也有效,有兴趣的话不

妨一试。

=IF(ISERROR(FIND(".",B4)),NUMBERSTRING(INT(B4),2)&"元整

",IF(ISERROR(NUMBERSTRING(MID(B4,FIND(".",B4)+2,1),2)),NUMBERSTRI

NG(INT(B4),2)&"元"&NUMBERSTRING(MID(B4,FIND(".",B4)+1,1),2)&"角整

",NUMBERSTRING(INT(B4),2)&"元

"&NUMBERSTRING(MID(B4,FIND(".",B4)+1,1),2)&"角

"&NUMBERSTRING(MID(B4,FIND(".",B4)+2,1),2)&"分"))

“NUMBERSTRING”这个函数在插入函数里是没有,它是将阿拉伯数字转化另

一种格式的一个函数,参数1、2、3,返回的是不同的格式。

经检验,这个公式在Excel中可正常使用,在WPS表格不可用,可能就是因为

“NUMBERSTRING”这个函数得缘故吧!

特别说明:假定需要转换的数字是999.09,上面几个公式转换的结果都是:玖佰

玖拾玖元零玖分,而最后一个公式转换的结果是:玖佰玖拾玖元零角玖分,请根

据需要选择吧!