(转)WORD中小写金额转换成大写

转自:http://www.officefans.net/cdb/viewthread.php?tid=52631

'* +++++++++++++++++++++++++++++
'* Created By SHOUROU@OfficeFans 2007-2-14 17:44:46
'仅测试于System: Windows NT Word: 11.0 Language: 2052
'№ 0155^The Code CopyIn [ThisDocument-ThisDocument]^'
'* -----------------------------Option Explicit
Sub GetChineseNum2()
'修正了原数据中含有千分位分隔符,并加入了空格容错,允许数字中带有空格
    Dim Numeric As Currency, IntPart As Long, DecimalPart As Byte, MyField As Field, Label As String
    Dim Jiao As Byte, Fen As Byte, Oddment As String, Odd As String, MyChinese As String
    Dim strNumber As String
    Const ZWDX As String = "壹贰叁肆伍陆柒捌玖零"    '定义一个中文大写汉字常量
    On Error Resume Next    '错误忽略
    With Selection
        strNumber = VBA.Replace(.Text, " ", "")
        Numeric = VBA.Round(VBA.CCur(strNumber), 2)    '四舍五入保留小数点后两位
        '判断是否在表格中
        If .Information(wdWithInTable) Then _
           .MoveRight unit:=wdCell 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变量
        '插入中文大写前的标签
        Label = 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 = Label & MyChinese & Oddment
    End With
End Sub

计算机试题库系统,是将编好的试题、答案、编码事先存入计算机的外部存储器(硬盘、光盘等),使用时,通过软件的控制,按照一定的方式和规则,将试题抽取、组合,形成试卷,打印输出。 使用计算机试题库系统可以大大提高工作效率,不论是抽题、组卷,还是提取答案、打印试卷,都非常迅速。同时,用计算机随机抽取试题,可以排除人为因素和误差,使试题的范围、难度、题型标准一致,试卷规范,保证教育测量的客观、公正。 本试题库系统由两部分组成:一是试题库本身(试题、答案、编码),二是试题库管理软件。试题库是系统的基础、原材料,软件是系统的调度者、加工者。 一、主要特点 1.直接利用Office平台 可以使用Word、Excel的所有功能,特别是它的编辑、排版、打印功能。 由于Word、Excel是人们最为熟悉、用户最为广泛的软件平台,用其内嵌的编程语言VBA进行二次开发得到的应用软件,既可以使大量繁琐、重复操作的自动化,提高工作效率和应用水平,同时又不改变原有的界面风格、系统功能和操作方式。人们不必花时间去适应另外一种软件环境,学习另外一种操作方式,大大降低使用门槛,提高了软件的可用性。 2.拷贝即用,绿色软件 本试题库管理系统包含一个Word文档和一个Excel工作簿文件(均带有VBA程序),只要将这两个文件拷贝到任何装有Office 2002以上版本系统的计算机中就可以直接使用,不用时可直接删除。不像一般软件那样包含大量系统文件,要进行安装和卸载。 3.可以管理多媒体试题库 由于试题、答案、试卷、参数全部在Word文档中,所以可以方便地处理文字、图形、表格、公式、符号,甚至声音、视频等信息,管理多媒体试题库。 4.在理论和技术上具有先进性 利用教育测量理论的最新研究成果,合理设置试题参数,动态制定组卷策略,使题库科学、合理。同时,采用先进的软件技术和算法,提高了时空效率,增加了通用性、可维护性和可移植性。 二、基本功能 1.题库维护 本软件作为一个通用试题库管理系统,可以管理各种试题库。每一门课程的试题库为一个Word文档,其中包括若干道试题以及其答案。对每一道试题的参数、题干和答案,可直接在Word环境中进行增、删、改、排等操作。可随时检测是否有重复题。为醒目起见,系统可自动将试题和答案的参数涂上不同颜色。可对试题和答案的参数进行有效性检验。 2.信息统计 统计整个题库中各章、各题型、各难度的试题数量、分数,总题量,总分数。指定组卷时各章、各题型、各难度的试题的抽取数量后,系统可统计出抽取的总题数,总分数。 3.生成试卷 按照预先设置或临时制定的组卷策略,即各章、各题型、各难度的抽题数量,进行随机或排他抽题,组成试卷和答案文档。 4.试卷加工 可以用Word本身的功能对试卷进行编辑、排版、打印等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值