要文本的数字,取三(超过一百万)(Microsoft Word)
在_WordTips_的前几期中,您学习了如何使用宏将数字转换为单词。例如,您可以将123转换为一百二十三。此宏的先前版本仅限于一百万以下。在此版本中,ante已提高一千倍-此版本的VBA宏将成功转换高达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是世界上最流行的文字处理软件。)本技巧(1442)适用于Microsoft Word 97、2000、2002和2003。