Числа в текст, возьми три (более миллиона) (Microsoft Word)
В предыдущих выпусках WordTips вы узнали, как использовать макрос для преобразования чисел в слова. Например, вы можете преобразовать 123 в сто двадцать три. Предыдущие воплощения этого макроса были ограничены числами ниже миллиона. В этой версии ставка была увеличена в тысячу раз — эта версия макроса 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), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (1442) применим к Microsoft Word 97, 2000, 2002 и 2003.