+ -
当前位置:首页 → 问答吧 → 数字全部转换成带千分符的格式

数字全部转换成带千分符的格式

时间:2008-11-19

来源:互联网

一篇word文档,里面有大量的财务数字。需要把这些数字全部转换成带千分符的格式,谢谢!
如:123456.78元,转换为123,456.78元(每3位数加一个英文逗号),文章短,手工改有可能,要是太长的话可能效率低下不说,还可能改遗漏掉.

[ 本帖最后由 wshcw 于 2008-11-19 16:31 编辑 ]

作者: wshcw   发布时间: 2008-11-19

我也有同样的问题

作者: 巧克lee   发布时间: 2008-12-08

这个问题若想一次性搞定那只能使用VBA,若想用前台的功能来实现那只能使用查找替换,但不能一步到位,根据文档中数字的位数多少,可能需要多次进行查找替换。

查找替换的方法如下:
第1次查找替换:[查找内容]([0-9])([0-9]{3}.[0-9])
         [替换为]\1,\2
     勾选:使用通配符

第2次查找替换:[查找内容]([0-9])([0-9]{3},[0-9]{3}.[0-9])
         [替换为]\1,\2
     勾选:使用通配符

第3次查找替换:[查找内容]([0-9])([0-9]{3},[0-9]{3},[0-9]{3}.[0-9])
         [替换为]\1,\2
     勾选:使用通配符

以此类推,从第3次查找替换开始,每增加一次就在[查找内容]中增加一个查找“[0-9]{3},”项目,直至查找替换反馈的数目为“0”。

作者: 如意   发布时间: 2008-12-08

请看附件。记得是home里面某位大侠做的。加载后,选取需要更改的部分,再按需要去选择运行即可。

附件

word数字格式改变.zip(34.1 KB)

2008-12-8 16:52, 下载次数: 86

作者: noname_ve   发布时间: 2008-12-08

全文替换还是不智能,不可用,这会把年份也加上了千分符.

作者: wshcw   发布时间: 2009-06-26

引用:
原帖由 wshcw 于 2009-6-26 13:27 发表
全文替换还是不智能,不可用,这会把年份也加上了千分符.
你可以把这个WORD文档传给我,我用《守柔Word数字通》给您转换一下即可。

[ 本帖最后由 守柔 于 2009-6-26 13:58 编辑 ]

附件

SZT_C.JPG(20.81 KB)

2009-6-26 13:58

作者: 守柔   发布时间: 2009-06-26

守柔数字通是收费软件吗,如果不是,请传一份给俺,谢谢。[email protected]

作者: sqds_ybc   发布时间: 2009-06-26

6楼版主那个小软件可不可以在E家与大家分离?先谢了!

作者: dengjq2000   发布时间: 2009-06-28

引用:
原帖由 守柔 于 2009-6-26 13:53 发表

你可以把这个WORD文档传给我,我用《守柔Word数字通》给您转换一下即可。
文档我不传了,现在公文保密查得紧,我用录制宏做了一下代码,请守柔老师简化和修改、指正,代码如下:


Sub 数字加千分符()
    Dim i As Range, Acell As Cell, CR As Range, YN As String
    On Error Resume Next
    Application.ScreenUpdating = False
    With Selection
        If .Type = 2 Then
            If .Words(1) Like "#" = False Then .Words(1).InsertBefore "辅助"
            For Each i In .Words
                If i Like "####*" = True Then
                    If i.Next Like "." = True And i.Next(wdWord, 2) Like "#*" = True Then
                        i.SetRange Start:=i.Start, End:=i.Next(wdWord, 2).End
                        i = Format(i, "Standard")
                    Else
                        i = Format(i, "Standard")
                    End If
                End If
            Next i
            .Words(1).Delete
        ElseIf .Type = 5 Then
            For Each Acell In .Cells
                Set CR = ActiveDocument.Range(Acell.Range.Start, Acell.Range.End - 1)
                If CR Like "####*" = True Then
                    If CR Like "####.#*" = True Then
                        YN = Format(CR, "Standard")
                        CR.Text = YN
                    Else
                        YN = Format(CR, "Standard")
                        CR.Text = YN
                    End If
                End If
            Next Acell
        Else
            MsgBox "您只能选定文本或者表格之一!", vbOK + vbInformation
        End If
    End With
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = ",([0-9]@)(.00)([\]年])"
        .Replacement.Text = "\1\3"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
         .MatchWildcards = True
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
      End Sub

作者: wshcw   发布时间: 2009-06-29

引用:
原帖由 wshcw 于 2009-6-29 22:39 发表

文档我不传了,现在公文保密查得紧,我用录制宏做了一下代码,请守柔老师简化和修改、指正,代码如下:


Sub 数字加千分符()
    Dim i As Range, Acell As Cell, CR As Range, YN As String
    On Error Resu ...
您录制的宏代码,我怎么非常眼熟啊?
http://club.excelhome.net/viewth ... p;extra=&page=1

作者: 守柔   发布时间: 2009-06-30

引用:
原帖由 守柔 于 2009-6-30 06:32 发表

您录制的宏代码,我怎么非常眼熟啊?
http://club.excelhome.net/viewthread.php?tid=65559&extra=&page=1
我只录制了如下部分:
Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = ",([0-9]@)(.00)([\]年])"
        .Replacement.Text = "\1\3"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
         .MatchWildcards = True
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
其余的应该是你写的代码吧(4楼附件中的一部分).

作者: wshcw   发布时间: 2009-06-30

查找内容:([0-9])([0-9]{3})([.,])
替 换 为:\1,\2\3
勾选“使用通配符”,重复执行“全部替换”直到提示替换0处为止。
或者在VBA中使用循环来替换。

作者: kqbt   发布时间: 2009-06-30

也遇到同样的问题,要是有个简单点的办法就好了。

作者: huyong152   发布时间: 2011-07-14