1

Тема: Разделитель разрядов чисел

Здравствуйте.
Можно ли в Word'е сделать так, чтобы числа при вводе автоматически разбивались на разряды? При этом никаких вычислений с ними производить не нужно.

2

Re: Разделитель разрядов чисел

Пока нашел в сети пакет макросов Методичка. В числе его возможностей (см. раздел Математика) разделение чисел на разряды тысяч (по 3 цифры).

3

Re: Разделитель разрядов чисел

Как я понял в 2007 есть возможность задавать форматы чисел (в том числе деление разрядов и т.д.) - подробнее тут.

Нашел также новую информацию (вроде касается и 2003 версии) - тут.

Отредактировано Andrew20051 (30.12.2009 10:22:30)

4

Re: Разделитель разрядов чисел

Спасибо.
Я видел этот пакет макросов, но его может быть сложно поставить на работе.

Насколько я понял, в 2007 речь идет про создание своего формата нумерации списков.

5

Re: Разделитель разрядов чисел

23, нужно разделять разряды в числах, которые находятся в тексте? Это можно делать макросом.

Sub GroupDigits()
  Dim SelectionStart As Long
  Dim SelectionEnd As Long
  
  SelectionStart = Selection.Start
  SelectionEnd = Selection.End
  Selection.EndKey wdStory, wdMove
  
  With Selection.Find
    .Text = "[0-9]{4;}"
    .MatchWildcards = True
    .Forward = False
    While .Execute
      If Not .Parent.Previous Is Nothing Then
        If .Parent.Previous.Text <> "," Then
          .Parent.Text = FormatNumber(CDbl(.Parent.Text), 0, GroupDigits:=vbTrue)
          Selection.Collapse wdCollapseStart
        End If
      Else
        .Parent.Text = FormatNumber(CDbl(.Parent.Text), 0, GroupDigits:=vbTrue)
      End If
    Wend
  End With
  
  Selection.SetRange SelectionStart, SelectionEnd

End Sub
Лучше день потерять — потом за пять минут долететь!

6

Re: Разделитель разрядов чисел

Спасибо!
Именно о этом я и мечтал.

7

Re: Разделитель разрядов чисел

А можно сделать то же самое в функции, которую можно вставить в поле слияния?
Например вот так:

{GroupDigits({ROUND({MERGEFIELD Сумма};2)})}

8

Re: Разделитель разрядов чисел

Великолепный скрипт!
Подскажите пожалуйста, а как вместо пробелов сделать разделителем запятую? Я пробовал наугад поменять все, максимум, что удалось, это чтобы появились десятичные знаки.

И еще может кто-нибудь подскажет, в документе есть годы (2012, 2013 и тп), как бы сделать, чтобы макрос их не трогал? Сам пока придумал только после замены искать числа 2,012 и менять их обратно.

9

Re: Разделитель разрядов чисел

Нашел в инете строчку .font.color=rgb(112,48,160) и добавил ее после .text="[0-9]{4;}"
И теперь макрос будет прелбразовывать только числа выделенные фиолетовым, т.е. красим в экселе цифры фиолетовым, даты вроде 2012 оставляем черными и он их трогать не будет.

Но вот как сделать, чтобы разделителем была запятая, так и не нашел sad

10

Re: Разделитель разрядов чисел

Gena54 пишет:

Нашел в инете строчку .font.color=rgb(112,48,160) и добавил ее после .text="[0-9]{4;}"
И теперь макрос будет прелбразовывать только числа выделенные фиолетовым, т.е. красим в экселе цифры фиолетовым, даты вроде 2012 оставляем черными и он их трогать не будет.

Это работает только в Excel?

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

11

Re: Разделитель разрядов чисел

Нет, цифры можно покрасить в фиолетовый цвет уже в ворде, и макрос вставит разделитель тольк в них