在_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。