将数字转换为文本(Microsoft Word)
有时您需要拼写数字。例如,您可能希望将“ 1234”拼写为“ 1,234”。
Word没有内置函数可以为您执行转换,因此您需要创建一个宏来处理转换。
以下宏BigCardText将转换0到999,999,999之间的任何数字。要使用它,只需将插入点放置在要转换的数字内,或者将其放置在数字的右侧(如果是一位数字)。
Sub BigCardText() Dim sDigits As String Dim sBigStuff As String sBigStuff = "" ' Select the full number in which the insertion point is located Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdMove Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend ' Store the digits in a variable sDigits = Trim(Selection.Text) If Val(sDigits) > 999999 Then If Val(sDigits) <= 999999999 Then sBigStuff = Trim(Int(Str(Val(sDigits) / 1000000))) ' Create a field containing the big digits and ' the cardtext format flag Selection.Fields.Add Range:=Selection.Range, _ Type:=wdFieldEmpty, Text:="= " + sBigStuff + " \* CardText", _ PreserveFormatting:=True ' Select the field and copy it Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend sBigStuff = Selection.Text & " million " sDigits = Right(sDigits, 6) End If End If If Val(sDigits) <= 999999 Then ' Create a field containing the digits and the cardtext format flag Selection.Fields.Add Range:=Selection.Range, _ Type:=wdFieldEmpty, Text:="= " + sDigits + " \* CardText", _ PreserveFormatting:=True ' Select the field and copy it Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend sDigits = sBigStuff & Selection.Text ' Now put the words in the document Selection.TypeText Text:=sDigits Selection.TypeText Text:=" " Else MsgBox "Number too large", vbOKOnly End If End Sub
使用宏时,请确保要转换的数字不包含多余的信息,例如美元符号或逗号。当您运行BigCardText时,宏将检查所选数字是否超过一百万。如果是这样,它将首先处理百万以上的部分,然后将其转换为单词。然后,将转换一百万以下的值。最后的完整措词放在一起,然后粘贴回文档中,以备使用。
注意:
如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。
_WordTips_是您进行经济有效的Microsoft Word培训的来源。
(Microsoft Word是世界上最流行的文字处理软件。)本技巧(7755)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。 Word的旧菜单界面在这里: