筆者是一名會計從業(yè)者,在word文檔中經(jīng)常與數(shù)字打交道,為了保持?jǐn)?shù)字格式的統(tǒng)一性,需要將數(shù)字添加千分位,并保留兩位小數(shù)。
通常是需要一次性把word里的數(shù)字全部變?yōu)闀嫺袷剑锤臑橛星Х痔柷液髱晌恍?shù)點的格式。
很遺憾的是,word自身內(nèi)置命令,并不能實現(xiàn)數(shù)字千分位的添加。常使用excel的朋友知道,excel添加千分位分隔符,保留兩位小數(shù)是很簡單容易的事情,單擊工具欄的命令即可完成。
既然內(nèi)置功能無法滿足,我們可以通過自己編寫一段VBA代碼來實現(xiàn)word數(shù)字千分位的批量添加。
我們以word2010版為例,來介紹word數(shù)字千分位的批量添加方法。
第一,打開需要添加數(shù)字千分位的word文檔。
第二,單擊開發(fā)工具――Visual Basic,或者按ALT+F11,打開VBE編輯器。
附:圖文教程:word2010開發(fā)工具的顯示和關(guān)閉http://www./show.asp?id=1447
第三,單擊插入――模塊,插入一個模塊,并在右邊的代碼窗口復(fù)制下面的代碼。
第四,關(guān)閉VBE界面,回到word文檔。單擊開發(fā)工具――宏,找到“qianfen”宏,單擊“運行”,即可完成word數(shù)字千分位的批量添加。
下面是具體的word數(shù)字千分位批量添加完整代碼,直接復(fù)制sub至end sub結(jié)束。
Sub qianfen()
'本代碼旨在解決WORD中數(shù)據(jù)轉(zhuǎn)化為千分位
'數(shù)據(jù)限定要求:-922,337,203,685,477.5808 到 922,337,203,685,477.5807
'轉(zhuǎn)化結(jié)果1000以上數(shù)據(jù)以千分位計算,小數(shù)點右側(cè)保留二位小數(shù);1000以下數(shù)據(jù)不變
Dim myRange As Range, i As Byte, myValue As Currency
On Error Resume Next
Application.ScreenUpdating = False '關(guān)閉屏幕更新
NextFind: Set myRange = ActiveDocument.Content '定義為主文檔文字部分
With myRange.Find '查找
.ClearFormatting '清除格式
.Text = "[0-9]{4,15}" '4到15位數(shù)據(jù)
.MatchWildcards = True '使用通配符
Do While .Execute '每次查找成功
i = 2 '起始值為2
'如果是有小數(shù)點
If myRange.Next(wdCharacter, 1) = "." Then
'進(jìn)行一個未知循環(huán)
While myRange.Next(wdCharacter, i) Like "#"
i = i + 1 '只要是[0-9]任意數(shù)字則累加
Wend
'重新定義RANGE對象
myRange.SetRange myRange.Start, myRange.End + i - 1
End If
myValue = VBA.Val(myRange) '保險起見轉(zhuǎn)換為數(shù)據(jù),也可省略
myRange = VBA.Format(myValue, "Standard") '轉(zhuǎn)為千分位格式
GoTo NextFind '轉(zhuǎn)到指定行
Loop
End With
Application.ScreenUpdating = True '恢復(fù)屏幕更新
End Sub