+ -
当前位置:首页 → 问答吧 → word 数字已经实现千分位,并且年份可以不加,但是我要如何保留两位小数?

word 数字已经实现千分位,并且年份可以不加,但是我要如何保留两位小数?

时间:2011-07-25

来源:互联网

Sub 设置千分位格式()
    Dim myRange As Range, myValue As Double, myString As String
    Application.ScreenUpdating = False    '关闭屏幕更新,加快程序运行
    Do    '进入一个循环
        '定义myRange为活动文档的主文字部分
        Set myRange = ActiveDocument.Content
        With myRange.Find  '查找设置
            .ClearFormatting    '清除格式
            .Text = "[0-9]{4,}[!年]"    '查找四个以上的数字且其后为不为年的内容
            .MatchWildcards = True    '使用通配符
            If .Execute = False Then Exit Do    '如果未找到则退出循环
            myValue = Val(myRange.Text)    '取得数字
            myRange.SetRange myRange.Start, myRange.End - 1    '重新定义myRange对象
            myRange.Text = VBA.Format$(myValue, "#,##0")     '写入千分位格式
        End With
    Loop
    Application.ScreenUpdating = True    '恢复屏幕更新
End Sub



上述代码只能实现加上千分位,年份后边实现不加,譬如2001年,不是2,001年,但是我想保留两位小数,该如何实现呢?

[ 本帖最后由 omyname 于 2011-7-25 16:03 编辑 ]

作者: omyname   发布时间: 2011-07-25

myRange.Text = VBA.Format$(myValue, "#,##0")     '写入千分位格式
改为:
  myRange.Text = VBA.Format$(myValue, "standard")     '写入千分位格式

作者: sqhsqhli   发布时间: 2011-07-25