WORD数字小写金额变大写

合集下载

金额小写自动生成大写公式

金额小写自动生成大写公式

金额小写自动生成大写公式金额小写转换成大写的公式主要依据中文的数字命名规则。

以下是一个可将金额小写转换成大写的公式:1.将金额小写以“元”为单位进行分组,每四位一组分组(从低位到高位),以方便命名。

2.对于每一组最高位的数字,根据其所在的组数命名单位(例如“元”、“万”、“亿”)。

其他位的数字分别根据其所在的位数加上相应的单位(例如“拾”、“佰”、“仟”、“拾万”、“佰万”、“仟万”、“拾亿”等)。

3.对于每一组中的数字,根据其大小进行命名。

命名规则如下:-0不进行命名,直接舍弃。

-1命名为“壹”或“一”(个别情况)。

-其他数字命名为“贰”、“叁”、“肆”、“伍”、“陆”、“柒”、“捌”、“玖”。

4.在每个数字后面添加相应的单位(例如“角”、“分”、“整”),其他位的单位根据需要进行命名,例如“拾角”、“佰角”、“仟分”等。

5.将每一组的命名和单位合并,组成完整的大写金额。

以下是一个具体的例子来说明公式的应用:假设要将金额小写1202.34转换成大写金额,根据公式:1.将金额小写以“元”为单位进行分组,得到两组数字:1202和342.对于最高位的数字1202,根据其所在的组数命名单位为“元”,其他位的数字分别命名为“壹仟”、“贰佰”、“零拾”、“贰”。

3.对于数字34,命名为“叁拾肆”。

4.在每个数字后面添加相应的单位:1202命名为“壹仟贰佰零拾贰元”,34命名为“叁拾肆分”。

5.将每一组的命名和单位合并,得到大写金额为“壹仟贰佰零拾贰元叁拾肆分”。

这就是将金额小写1202.34转换成大写的公式。

根据这个公式,可以将任何金额小写转换成大写。

Word VBA:小写数字转换为大写数字

Word VBA:小写数字转换为大写数字

Word VBA:小写数字转换为大写数字声明:原创内容,转发请注明出处及作者,盗版必究作者:柴大人QQ:24823610使用方法:把代码制作成宏(具体方法请自查),然后拉选需要转换的数字后执行宏,转换后会自动把结果复制到剪贴板上,直接在需要插入大写数字的地方粘贴即可。

在OFFICE 2013 64位中测试正常。

转换效果:123456789壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元整123456789.12壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角贰分123456789.02壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元零贰分123456789.1壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角整123000789壹亿贰仟叁佰万零柒佰捌拾玖元整源码:Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hwnd As LongPtr) As LongPtrDeclare PtrSafe Function SetClipboardData Lib "user32" (ByVal Format As LongPtr, ByVal hMem As LongPtr) As LongPtr Declare PtrSafe Function CloseClipboard Lib "user32" () As LongPtrDeclare PtrSafe Function EmptyClipboard Lib "user32" () As LongPtrDeclare PtrSafe Function GlobalAlloc Lib "kernel32" (ByVal Flags As LongPtr, ByVal length As LongPtr) As LongPtrDeclare PtrSafe Function GlobalLock Lib "kernel32" (ByVal hMem As LongPtr) As LongPtrDeclare PtrSafe Function GlobalUnlock Lib "kernel32" (ByVal hMem As LongPtr) As LongPtrDeclare PtrSafe Function GlobalFree Lib "kernel32" (ByVal hMem As LongPtr) As LongPtrDeclare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal pDest As LongPtr, ByVal pSource As LongPtr, ByVal length As LongPtr)Sub Transform()Dim Capital, Unit, Number, Capacity, Integers, Decimals, R1, R2, PrintOut, TempA, LastZeroDim hMem As LongPtr, lHwnd As LongPtrCapital = "壹贰叁肆伍陆柒捌玖"Unit = "元拾佰仟万拾佰仟亿"Number = VBA.Trim(Selection.Text)Number = VBA.Replace(Number, Chr(10), "")Number = VBA.Replace(Number, Chr(13), "")LastZero = 0If VBA.IsNumeric(Number) ThenIntegers = Int(Number)If Int(Number) <> VBA.CDbl(Number) ThenDecimals = Replace(VBA.Round(Number, 2), Integers & ".", "")ElseDecimals = ""End IfFor R1 = 0 To Len(Integers) - 1TempA = Mid(Integers, Len(Integers) - R1, 1)If TempA = 0 And LastZero = 0 ThenPrintOut = "零" & PrintOutLastZero = 1ElseIf TempA > 0 ThenPrintOut = Mid(Capital, CInt(TempA), 1) & Mid(Unit, R1 + 1, 1) & PrintOutLastZero = 0End IfSelect Case R1Case 4If VBA.InStr(PrintOut, "万") = 0 Then PrintOut = "万" & PrintOut End SelectNext R1If VBA.InStr(PrintOut, "元") = 0 Then PrintOut = PrintOut & "元"Select Case Len(Decimals)Case 0PrintOut = PrintOut & "整"Case 1PrintOut = PrintOut & Mid(Capital, CInt(Left(Decimals, 1)), 1) & "角整"Case 2If CInt(Left(Decimals, 1)) > 0 ThenPrintOut = PrintOut & Mid(Capital, CInt(Left(Decimals, 1)), 1) & "角"ElsePrintOut = PrintOut & "零"End IfPrintOut = PrintOut & Mid(Capital, CInt(Right(Decimals, 1)), 1) & "分"End SelecthMem = GlobalAlloc(&H42, LenB(PrintOut) + 2)lHwnd = GlobalLock(hMem)CopyMemory lHwnd, StrPtr(PrintOut), LenB(PrintOut) + 2GlobalUnlock (hMem)OpenClipboard (0)EmptyClipboardSetClipboardData 13, hMemCloseClipboardEnd IfEnd Sub。

Word中数字金额小写“变”大写有两招

Word中数字金额小写“变”大写有两招

Word中数字金额小写“变”大写有两招在日常的办公应用中,尤其是作为一名财务人员,经常需要输入大写金额的形式的数字,“肆仟叁佰五拾元零伍分”,如果用手工输入的话,显得比较麻烦,其实只要通过输入小写数字并通过如下两招就能达到快速输入的目的。

第一招:釜底抽薪——自动更正法如果需要重复的输入一个大写数字金额,可以采用自动更正的方法。

例如要重复输入“肆仟叁佰伍拾元零伍分”,可以先输入“肆仟叁佰伍拾元零伍分”并选中它,然后执行菜单“工具→自动更正选项”打开“自动更正”对话框(图1),在“替换”下的框内输入“4350.05”并单击“添加”按钮确定后退出,以后直接输入“4350.05”后回车即可快速得到“肆仟叁佰伍拾元零伍分”。

第二招:一劳永逸——编制自动宏如果有许多小写金额要变成大写的话,用上面的自动更正的方法需要定义很多自动更正项,显然也比较麻烦,其实只需要编辑一个宏就能做到“一劳永逸”了。

启动Word后按下A lt+F11组合键,在打开的工程窗口左侧双击“ThisDocument”进入代码编写窗口,在代码编辑窗口中输入如下代码:Option ExplicitSub 小写金额变大写()Dim Numeric As Currency, IntPart As Long, DecimalPart As Byte, MyField As Field, Lable As String Dim Jiao As Byte, Fen As Byte, Oddment As String, Odd As String, MyChinese As StringConst ZWDX As String = "壹贰叁肆伍陆柒捌玖零" '定义一个中文大写汉字常量On Error Resume Next '错误忽略With SelectionNumeric = VBA.Round(VBA.Val(.Text), 2) '四舍五入保留小数点后两位'判断是否在表格中If .Information(wdWithInTable) Then _.MoveRight unit:=wdCell Else .MoveRight unit:=wdCharacter'对数据进行判断,是否在指定的范围内If VBA.Abs(Numeric) > 2147483647 Then MsgBox "数值超过范围!", _vbOKOnly + vbExclamation, "Warning": Exit SubIntPart = Int(VBA.Abs(Numeric)) '定义一个正整数Odd = VBA.IIf(IntPart = 0, "", "元") '定义一个STRING变量'插入中文大写前的标签Lable = VBA.IIf(Numeric = VBA.Abs(Numeric), "人民币金额大写: ", "人民币金额大写: 负") '对小数点后面二位数进行择定DecimalPart = (VBA.Abs(Numeric) - IntPart) * 100Select Case DecimalPartCase Is = 0 '如果是0,即是选定的数据为整数Oddment = VBA.IIf(Odd = "", "", Odd & "整")Case Is < 10 '<10,即是零头是分Oddment = VBA.IIf(Odd <> "", "元零" & VBA.Mid(ZWDX, DecimalPart, 1) & "分", _VBA.Mid(ZWDX, DecimalPart, 1) & "分") Case 10, 20, 30, 40, 50, 60, 70, 80, 90 '如果是角整Oddment = "元" & VBA.Mid(ZWDX, DecimalPart / 10, 1) & "角整"Case Else '既有角,又有分的情况Jiao = VBA.Left(CStr(DecimalPart), 1) '取得角面值Fen = VBA.Right(CStr(DecimalPart), 1) '取得分面值Oddment = Odd & VBA.Mid(ZWDX, Jiao, 1) & "角" '转换为角的中文大写Oddment = Oddment & VBA.Mid(ZWDX, Fen, 1) & "分" '转换为分的中文大写End Select'指定区域插入中文大写格式的域Set MyField = .Fields.Add(Range:=.Range, Text:="= " & IntPart & " \*CHINESENUM2") MyField.Select '选定域(最后是用指定文本覆盖选定区域)'如果仅有角分情况下,Mychinese为""MyChinese = VBA.IIf(MyField.Result <> "零", MyField.Result, "").Text = Lable & MyChinese & OddmentEnd WithEnd Sub人民币金额大写:输入完毕后按下Alt+Q键返回word中,以后只需要依次选中需要转换的小写金额后,按下Alt+F8打开宏对话框,选择“小写金额变大写”宏(图2),并单击“运行”即可快速地得出大写金额。

小写数字转换大写金额

小写数字转换大写金额

小写数字转换大写金额在生活和工作中,我们经常需要将小写数字转换为大写金额。

无论是填写支票、填报表格还是使用中文写信,正确地将小写数字转化为大写金额都是非常重要的。

在本文中,我们将探讨如何准确地将小写数字转换为大写金额,并提供一些实用的技巧和示例。

一、基本规则在将小写数字转换为大写金额时,需要遵循一些基本规则。

以下是一些基本规则的概述:1.数字组合:按照汉字的习惯用法,数字一般采用阿拉伯数字,如1、2、3等。

当数字大于9时,应使用相应的数位字符,如10、100、1000等。

例如,将数字123转换为大写金额应为“壹佰贰拾叁元整”。

2.零的使用:在金额中,零的使用是非常重要的。

每个整数数字之间都要使用“零”进行分隔,以示清晰。

例如,将数字1234转换为大写金额应为“壹仟贰佰叁拾肆元整”。

3.单位的使用:大写金额中需要标明货币单位,如“元”,“角”,“分”等。

例如,将数字123.45转换为大写金额应为“壹佰贰拾叁元肆角伍分”。

4.进位规则:当有0在整数数字中,如100、1000时,需要正确进位,并使用相应的数位字符。

例如,将数字1000转换为大写金额应为“壹仟元整”。

5.小数位的处理:小数位的处理也很关键,需要将小数部分转换为大写金额,并使用相应的数位字符。

例如,将数字123.45转换为大写金额应为“壹佰贰拾叁元肆角伍分”。

二、转换示例以下是几个常见的示例来演示如何准确地将小写数字转换为大写金额:1.数字1234.56转换为大写金额:壹仟贰佰叁拾肆元伍角陆分2.数字9999.99转换为大写金额:玖仟玖佰玖拾玖元玖角玖分3.数字10000.00转换为大写金额:壹万元整4.数字1转换为大写金额:壹元整以上示例可以帮助我们了解如何正确地将小写数字转换为大写金额。

根据不同的需要,我们可以灵活运用这些基本规则和转换示例,确保准确地将小写数字转换为大写金额。

三、注意事项在将小写数字转换为大写金额时,还需要注意一些事项,以避免出现错误。

如何在Word中设置文字的大小写转换和首字母大写

如何在Word中设置文字的大小写转换和首字母大写

如何在Word中设置文字的大小写转换和首字母大写在Word中设置文字的大小写转换和首字母大写Microsoft Word是一个功能强大的文本编辑工具,它不仅可以帮助我们编辑和排版文档,还提供了一系列实用的功能,如大小写转换和首字母大写。

本文将介绍如何在Word中设置文字的大小写转换和首字母大写。

无论是对于学生、职场人士还是日常用户,这些功能都能提高编辑效率和文档的规范性。

首先,我们来介绍如何进行文字的大小写转换。

在Word中,我们可以通过以下步骤实现:1. 打开要编辑的文档并选择要转换大小写的文字。

你可以按住鼠标左键并拖动光标来选择一段文字,或者双击鼠标左键选择整个单词、句子或段落。

2. 单击Word菜单栏上的“开始”选项卡,并找到“字体”工具栏。

在该工具栏上,你会看到一个“Aa”图标,它用于调整文字大小写。

3. 点击“Aa”图标旁边的小三角形,会弹出一个下拉菜单,其中包含大小写转换的选项。

你可以选择“大写”、“小写”、“首字母大写”、“切换大/小写”等选项。

根据你的需求,选择相应的选项即可完成大小写转换。

这个功能非常实用,无论是在修改笔记、编辑文章还是处理文本格式不规范的情况下,都可以帮助我们快速将文字转换为大写或小写形式。

接下来,我们来介绍如何设置文字的首字母大写。

在Word中,有两种方法可以实现这个功能:方法一:使用Shift+F3快捷键1. 在要编辑的文档中选择文字,可以是一个单词、一个句子或一个段落。

2. 按住Shift键,同时按下F3键。

每按一次,选中的文字将在以下三种形式之间切换:全部大写、首字母大写和全部小写。

方法二:使用字母大小写切换功能1. 选中文本,单击“开始”选项卡上的“字体”工具栏。

2. 在弹出的“字体”对话框中,选中“首字母大写”。

3. 点击“确定”按钮,选中的文字将自动转换为首字母大写形式。

通过上述两种方法,我们可以轻松地设置文字的首字母大写。

这个功能在编辑正式文档、书写报告和处理大段文字时非常有用,可以减少手动修改的工作量。

word转换人民币金额大写

word转换人民币金额大写

word转换人民币金额大写word转换人民币金额大写宏在word中启用A lt+F11编辑宏,在打开的工程窗口左侧双击“ThisDocument”进入代码编写窗口,在代码编辑窗口中输入如下代码:Sub 小写金额变大写()Dim Numeric As Currency, IntPart As Long, DecimalPart As Byte, MyField As Field, Lable As StringDim Jiao As Byte, Fen As Byte, Oddment As String, Odd As String, MyChinese As StringConst ZWDX As String = "壹贰叁肆伍陆柒捌玖零"'定义一个中文大写汉字常量On Error Resume Next '错误忽略With SelectionNumeric = VBA.Round(VBA.Val(.Text), 2) '四舍五入保留小数点后两位'判断是否在表格中!!此处为向左MoveLeft移动3(count)个单元格(wdCell)If .Information(wdWithInTable) Then _.MoveLeft unit:=wdCell, Count:=3 Else .MoveRightunit:=wdCharacter'对数据进行判断,是否在指定的范围内If VBA.Abs(Numeric) &gt; 2147483647 Then MsgBox "数值超过范围!", _vbOKOnly + vbExclamation, "Warning": Exit SubIntPart = Int(VBA.Abs(Numeric)) '定义一个正整数Odd = VBA.IIf(IntPart = 0, "", "元") '定义一个STRING变量'插入中文大写前的标签Lable = VBA.IIf(Numeric = VBA.Abs(Numeric), "合计金额大写: ", "合计金额大写: 负")'对小数点后面二位数进行择定DecimalPart = (VBA.Abs(Numeric) - IntPart) * 100Select Case DecimalPartCase Is = 0 '如果是0,即是选定的数据为整数Oddment = VBA.IIf(Odd = "", "", Odd &amp; "整")Case Is &lt; 10 '&lt;10,即是零头是分Oddment = VBA.IIf(Odd &lt;&gt; "", "元零"&amp; VBA.Mid(ZWDX, DecimalPart, 1) &amp; "分", _VBA.Mid(ZWDX, DecimalPart, 1)&amp; "分")Case 10, 20, 30, 40, 50, 60, 70, 80, 90 '如果是角整Oddment = "元" &amp; VBA.Mid(ZWDX, DecimalPart / 10, 1) &amp; "角整"Case Else '既有角,又有分的情况Jiao = VBA.Left(CStr(DecimalPart), 1) '取得角面值Fen = VBA.Right(CStr(DecimalPart), 1) '取得分面值Oddment = Odd &amp; VBA.Mid(ZWDX, Jiao, 1) &amp; "角" '转换为角的中文大写Oddment = Oddment &amp; VBA.Mid(ZWDX, Fen, 1) &amp; "分" '转换为分的中文大写End Select'指定区域插入中文大写格式的域Set MyField = .Fields.Add(Range:=.Range, Text:="= " &amp; IntPart &amp; " \*CHINESENUM2")MyField.Select '选定域(最后是用指定文本覆盖选定区域)'如果仅有角分情况下,Mychinese为""MyChinese = VBA.IIf(MyField.Result &lt;&gt; "零", MyField.Result, "").Text = Lable &amp; MyChinese &amp; OddmentEnd WithEnd Sub输入完毕后按下Alt+Q键返回word中,以后只需要依次选中需要转换的小写金额后,按下Alt+F8打开宏对话框,选择“小写金额变大写”宏,并单击“运行”即可快速地得出大写金额。

word小写金额转换大写金额公式

word小写金额转换大写金额公式

word小写金额转换大写金额公式
首先,我们需要了解一下小写金额转换大写金额的规则:
1. 小写金额的每一位数字都有对应的大写金额,如:0对应“零”,1对应“壹”,2对应“贰”,3对应“叁”,4对应“肆”,5对应“伍”,6对应“陆”,7对应“柒”,8对应“捌”,9对应“玖”。

2. 小写金额的每一位数字都有对应的单位,如:个位数字对应“元”,十位数字对应“拾”,百位数字对应“佰”,千位数字对应“仟”,万位数字对应“万”,十万位数字对应“拾万”,百万位数字对应“佰万”,千万位数字对应“仟万”,亿位数字对应“亿”,十亿位数字对应“拾亿”,百亿位数字对应“佰亿”,千亿位数字对应“仟亿”。

3. 小写金额的每一位数字都有对应的节权位,如:个位数字对应“角”,十位数字对应“分”,百位数字对应“厘”。

根据以上规则,我们可以构建一个小写金额转换大写金额的公式:
设小写金额为X,则大写金额为Y,则有:
Y=X/10000000000*“仟亿”+X/100000000%10*“佰
亿”+X/10000000%10*“拾
亿”+X/1000000%10*“亿”+X/100000%10*“仟
万”+X/10000%10*“佰万”+X/1000%10*“拾
万”+X/100%10*“万”+X/10%10*“仟”+X/1%10*“佰”+X/0.1%10*“拾”+X/0.01%10*“元”+X/0.001%10*“角”+X/0.0001%10*“分”+ X/0.00001%10*“厘”。

最后,我们可以根据上述公式,将小写金额转换为大写金额。

如何将小写金额转换成大写金额函数公式

如何将小写金额转换成大写金额函数公式

如何将小写金额转换成大写金额函数公式要将小写金额转换成大写金额,可以使用以下函数公式:1. 创建一个函数,命名为convertToChinese(amount),其中amount 是小写金额的参数。

2.首先,创建一个字典用于存储数字和对应的中文大写表示。

例如:digits =0:'零',1:'壹',2:'贰',3:'叁',4:'肆',5:'伍',6:'陆',7:'柒',8:'捌',9:'玖'}3.创建一个列表用于存储数字位数对应的中文大写表示。

例如:units = ['', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿']4. 将小写金额转换成整数,以避免小数点的干扰。

可使用int(函数将小写金额转换为整数。

例如:amount = int(amount)5. 创建一个空字符串变量result,用于存储最终的大写金额。

6. 判断金额是否为零,如果是零,则将'零'加入到result中。

例如:if amount == 0:result = '零'7.创建一个循环,每次迭代都获取金额的最后四位。

循环的条件为金额不为零。

例如:while amount != 0:8.获取最后四位的数字,并将其转换成字符串。

例如:10. 创建一个空字符串变量temp,用于存储最终的大写金额的每一位。

11.创建一个循环,每次迭代都获取最后一位数字,并将其转换成中文大写表示。

循环的条件为最后四位数字不为零。

例如:while last_four != '0':12.获取最后一位数字,并将其转换成整数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Sub 小写金额变大写()
Dim Numeric As Currency, IntPart As Long, DecimalPart As Byte, MyField As Field, Lable As String
Dim Jiao As Byte, Fen As Byte, Oddment As String, Odd As String, MyChinese As String
Const ZWDX As String = "壹贰叁肆伍陆柒捌玖零" '定义一个中文大写汉字常量
On Error Resume Next '错误忽略
With Selection
Numeric = VBA.Round(VBA.V al(.Text), 2) '四舍五入保留小数点后两位
'判断是否在表格中!!此处为向左MoveLeft移动1(count)个单元格(wdCell)
If .Information(wdWithInTable) Then _
.MoveLeft unit:=wdCell, Count:=1 Else .MoveRight unit:=wdCharacter
'对数据进行判断,是否在指定的范围内
If VBA.Abs(Numeric) > 2147483647 Then MsgBox "数值超过范围!", _
vbOKOnly + vbExclamation, "Warning": Exit Sub
IntPart = Int(VBA.Abs(Numeric)) '定义一个正整数
Odd = VBA.IIf(IntPart = 0, "", "元") '定义一个STRING变量
'插入中文大写前的标签
Lable = VBA.IIf(Numeric = VBA.Abs(Numeric), "人民币大写: ", "金额大写: 负")
'对小数点后面二位数进行择定
DecimalPart = (VBA.Abs(Numeric) - IntPart) * 100
Select Case DecimalPart
Case Is = 0 '如果是0,即是选定的数据为整数
Oddment = VBA.IIf(Odd = "", "", Odd & "整")
Case Is < 10 '<10,即是零头是分
Oddment = VBA.IIf(Odd <> "", "元零" & VBA.Mid(ZWDX, DecimalPart, 1) & "分", _
VBA.Mid(ZWDX, DecimalPart, 1) & "分")
Case 10, 20, 30, 40, 50, 60, 70, 80, 90 '如果是角整
Oddment = "元" & VBA.Mid(ZWDX, DecimalPart / 10, 1) & "角整"
Case Else '既有角,又有分的情况
Jiao = VBA.Left(CStr(DecimalPart), 1) '取得角面值
Fen = VBA.Right(CStr(DecimalPart), 1) '取得分面值
Oddment = Odd & VBA.Mid(ZWDX, Jiao, 1) & "角" '转换为角的中文大写
Oddment = Oddment & VBA.Mid(ZWDX, Fen, 1) & "分" '转换为分的中文大写
End Select
'指定区域插入中文大写格式的域
Set MyField = .Fields.Add(Range:=.Range, Text:="= " & IntPart & " \*CHINESENUM2") MyField.Select '选定域(最后是用指定文本覆盖选定区域)
'如果仅有角分情况下,Mychinese为""
MyChinese = VBA.IIf(MyField.RESULT <> "零", MyField.RESULT, "")
.Text = Lable & MyChinese & Oddment
End With
End Sub。

相关文档
最新文档