Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - [решено] Укоротить большие числа (Word)

Ответить
Настройки темы
2010 - [решено] Укоротить большие числа (Word)

Пользователь


Сообщения: 64
Благодарности: 5

Профиль | Отправить PM | Цитировать


Работа рутинная, поэтому без макроса не обойтись.
В документе есть большие числа. Например: 16323542,67. Документ большой (60 страниц), больших числе много. Требуется укоротить такие числа, т.е. привести в вид такой: 16*10^6 (10 в шестой степени, в Word'е естественно степень на верху). Числа в документе встречаются разные, от маленьких типа 0,1 до миллиардов. Необходимо сократить только большие числа: если число 80 000 то 80*10^3 если число 100 000 то 100*10^3. Обрабатывать только те числа которые >=10 000. Степени допускаются только 10^3 10^6 10^9 10^12 и тд.

Заранее благодарю вас !

З.Ы.: Есть похожий пример http://otvety.google.ru/otvety/threa...1ae0813f56a5a0 , его только нужно немножко доработать.

Отправлено: 18:51, 28-04-2013

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Starter1, выкладывайте образец/пример документа.

Отправлено: 21:16, 28-04-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 64
Благодарности: 5

Профиль | Отправить PM | Цитировать


В принципе всё тот же документ если вы помните. Документ PZ_formula.doc.

Последний раз редактировалось Starter1, 01-05-2013 в 17:04.


Отправлено: 12:19, 29-04-2013 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


читать дальше »
Цитата Starter1:
если вы помните. »
Ну…


Сами-то как думаете?

Цитата Starter1:
Цитата Iska:
выкладывайте образец/пример документа. »
всё тот же документ »
Потому Вы выложили сразу три документа? Это шутка такая?


По работе: например, в документе «PZ_formula.doc» после текста «Вращающие моменты на валах:» есть числа «115062,16», «240583,044», «643558,523». Мы должны их поменять на «115,06216·10³», «240,583044·10³» и «643,558523·10³» соответственно. Так? Или на «115·10³», «240·10³» и «643·10³»?

Отправлено: 13:23, 29-04-2013 | #4


Пользователь


Сообщения: 64
Благодарности: 5

Профиль | Отправить PM | Цитировать


На «115·10³», «240·10³» и «643·10³»

Отправлено: 21:50, 29-04-2013 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Starter1, к сожалению, моих идей недостаточно.

На простом тексте, наподобие Вашего первого поста в этой теме, хорошо работает такое:
читать дальше »
Код: Выделить весь код
Option Explicit

Sub Sample2()
    Dim objRegExp As Object
    
    Dim lngValue As Long
    Dim intOrder As Integer
    Dim strValue As String
    
    Set objRegExp = CreateObject("VBScript.RegExp")
    
    objRegExp.Pattern = "(?:1\d{4,}|[2-9]\d{4,}),?\d*"
    
    Do While objRegExp.Test(ThisDocument.Range.Text)
        With objRegExp.Execute(ThisDocument.Range.Text).Item(0)
            lngValue = CLng(Replace(.Value, ",", "."))
            intOrder = ((Len(CStr(lngValue)) - 1) \ 3) * 3
            strValue = CStr(lngValue \ 10 ^ intOrder) & "·10"
            
            Debug.Print .Value
            
            With ThisDocument.Range(.FirstIndex, .FirstIndex + .Length)
                Debug.Print .Information(wdActiveEndPageNumber) & " (" & .Information(wdNumberOfPagesInDocument) & ")"
                .Delete
                
                .InsertAfter strValue
                .Collapse wdCollapseEnd
                
                .InsertAfter intOrder
                .Font.Superscript = True
                .Collapse wdCollapseEnd
            End With
        End With
    Loop
    
    Set objRegExp = Nothing
End Sub




Но, при наличии в документе полей, нумерация символов в «ThisDocument.Range()» и «ThisDocument.Range.Text» не совпадает.

Также, насколько я понимаю, не удастся перевести шаблон регулярного выражения в форму для Find & Replace Microsoft Word даже в Вашей версии (Find and replace text by using regular expressions (Advanced) - Word - Office.com).

Возможно, более опытные коллеги подскажут, что можно сделать.

Последний раз редактировалось Iska, 30-04-2013 в 13:11. Причина: Добавил иллюстрации


Отправлено: 13:02, 30-04-2013 | #6


Пользователь


Сообщения: 64
Благодарности: 5

Профиль | Отправить PM | Цитировать


Iska, Понятно. Спасибо. Я хочу попробовать связать с builder.

Отправлено: 12:39, 01-05-2013 | #7


Пользователь


Сообщения: 64
Благодарности: 5

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar PZ_formula.rar
(490.1 Kb, 1 просмотров)

Iska, Частично удалось решить проблему. Первое что заметил это в документе числа до миллиона. То есть 10^3 достаточно. Поэтому воспользовался подстановочными знаками. Но теперь другая проблема. После 2-3х чисел стоит выражение "*10^3", прямо вот такое выражение, то есть 3 не надстрочный символ, галочка показывающая степень тоже стоит. И остаётся вопрос только как эту 3 сделать надстрочной и убрать галочку? Как галочку убрать я знаю, а вот цифру сделать надстрочной не понятно. Прикрепил документ на всякий случай.

Отправлено: 17:04, 01-05-2013 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Starter1:
Поэтому воспользовался подстановочными знаками. »
Просто поиск/замена с возрастающим количеством цифр? В принципе, да — иногда полуавтоматический вариант работает успешнее нежели полный автомат. Цифры при ГОСТ, случайно, не заменили ?

Цитата Starter1:
После 2-3х чисел стоит выражение "*10^3", прямо вот такое выражение, то есть 3 не надстрочный символ, галочка показывающая степень тоже стоит. И остаётся вопрос только как эту 3 сделать надстрочной и убрать галочку? Как галочку убрать я знаю, а вот цифру сделать надстрочной не понятно. »
Это-то просто:
читать дальше »


Надеюсь, «^» у Вас использовался только в качестве знака степени.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:29, 01-05-2013 | #9


Пользователь


Сообщения: 64
Благодарности: 5

Профиль | Отправить PM | Цитировать


Цитата Iska:
Цифры при ГОСТ, случайно, не заменили ? »
Проверял вроде нормально.
Цитата Iska:
Надеюсь, «^» у Вас использовался только в качестве знака степени. »
Тоже на это надеюсь .

Отправлено: 21:46, 01-05-2013 | #10



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - [решено] Укоротить большие числа (Word)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2003/XP/2000 - [решено] Word | Долго запускается Word marmot Microsoft Office (Word, Excel, Outlook и т.д.) 28 28-11-2018 16:18
2010 - [решено] Word - Как отобразить линейку в Word 2010 Светлана96 Microsoft Office (Word, Excel, Outlook и т.д.) 3 17-01-2012 18:30
2003/XP/2000 - Word | Открытие документа Word в режиме чтения Qwe1 Microsoft Office (Word, Excel, Outlook и т.д.) 4 24-02-2010 16:41
Большие Гонки aleksander Игры 5 26-03-2004 01:12
Большие буквы Surround Microsoft Windows 95/98/Me (архив) 1 27-02-2003 20:07




 
Переход