Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2014, 11:32   #1
jovannyfx
 
Регистрация: 18.06.2014
Сообщений: 8
Сообщение Помогите поправить скрипт

Добрый день
Люди помогите пожалуйста подправить скрипт:

Sub TextReplace()
With ActiveDocument.Range.Find
.Text = "([A-Za-zА-Яа-яЁё])([A-Za-zА-Яа-яЁё])": .MatchWildcards = True
.Replacement.Text = "\1#$&@\2"
.Execute Replace:=wdReplaceAll
.Text = "#$&@": .MatchWildcards = False
.Replacement.Text = " ": .Replacement.Font.Size = 1
.Execute Replace:=wdReplaceAll
End With
End Sub

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

Пожалуйста
jovannyfx вне форума Ответить с цитированием
Старый 18.06.2014, 11:48   #2
jovannyfx
 
Регистрация: 18.06.2014
Сообщений: 8
По умолчанию

Так, с этим уже разобрался. Только вот расстояние между словами больно маленькое теперь получилось((
jovannyfx вне форума Ответить с цитированием
Старый 18.06.2014, 12:23   #3
jovannyfx
 
Регистрация: 18.06.2014
Сообщений: 8
По умолчанию

Подскажите каким образом сделали замену как в прикрепленном файле ?
Вложения
Тип файла: doc 666.doc (26.5 Кб, 28 просмотров)
jovannyfx вне форума Ответить с цитированием
Старый 18.06.2014, 14:01   #4
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

здесь применен китайский пробел --код 4447
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 18.06.2014, 14:06   #5
jovannyfx
 
Регистрация: 18.06.2014
Сообщений: 8
По умолчанию

То есть мой скрипт будет иметь теперь такой вид, я правильно исправил ?

Sub TextReplace()
With ActiveDocument.Range.Find
.Text = "([A-Za-zА-Яа-яЁё])^0032([A-Za-zА-Яа-яЁё])": .MatchWildcards = True
.Replacement.Text = "\1#$&@\2"
.Execute Replace:=wdReplaceAll
.Text = "#$&@": .MatchWildcards = False
.Replacement.Text = "^4447": .Replacement.Font.Size = 1
.Execute Replace:=wdReplaceAll
End With
End Sub

Нет, получилось не так, форматирование текста улетает. Похоже, что здесь используется другой символ.
Я не могу сообразить запрос поиска, чтобы он в конце каждого слова добавлял этот символ и пробел тем самым изменяется слово, но визуально этого не видно.
как то так, буду думать дальше.

Последний раз редактировалось jovannyfx; 18.06.2014 в 14:19. Причина: UPD
jovannyfx вне форума Ответить с цитированием
Старый 18.06.2014, 15:33   #6
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

Код:

Replacement.Text = chrw(4447)
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 18.06.2014, 15:49   #7
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

Код:
Sub TextReplace18()
With ActiveDocument.Range.Find

.Text = ChrW(4447)
.MatchWildcards = True
.Replacement.Text = ""
.Execute Replace:=wdReplaceAll

.Text = "([A-Za-zА-Яа-яЁё])([\ \.\,\;])"
.MatchWildcards = True
.Replacement.Text = "\1#$&@\2"
.Execute Replace:=wdReplaceAll
'
.Text = "#$&@"
.MatchWildcards = False
.Replacement.Text = ChrW(4447)
.Replacement.Font.Size = 1
.Execute Replace:=wdReplaceAll

End With
End Sub
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 27.06.2014, 14:40   #8
jovannyfx
 
Регистрация: 18.06.2014
Сообщений: 8
По умолчанию

Подскажите можно ли с помощью макроса заменить пробелы между русскими словами этим текстом

Код:
</w:t></w:r><w:r wsp:rsidRPr="009B0025"><w:rPr><w:rFonts w:ascii="Gungsuh" w:h-ansi="Gungsuh" w:cs="Gungsuh"/><wx:font wx:val="Gungsuh"/><w:noProof/><w:vanish/><w:color w:val="FFFFFF"/><w:spacing w:val="-20"/><w:w w:val="1"/><w:sz w:val="2"/><w:sz-cs w:val="28"/><w:lang w:val="RU"/></w:rPr><w:t>ᅟ</w:t></w:r><w:r><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/><wx:font wx:val="Times New Roman"/><w:noProof/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:lang w:val="RU"/></w:rPr><w:t> </w:t></w:r><w:r wsp:rsidRPr="009B0025"><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/><wx:font wx:val="Times New Roman"/><w:noProof/><w:sz w:val="28"/><w:sz-cs w:val="28"/><w:lang w:val="RU"/></w:rPr><w:t>
jovannyfx вне форума Ответить с цитированием
Старый 27.06.2014, 21:46   #9
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,039
По умолчанию

то есть нашли пробел глянули, если слева знак из перечня а-я, тогда смотрим справа, если тоже нак из перечня а-я, то меняем, так? так вроде же не сложно
Ципихович Эндрю вне форума Ответить с цитированием
Старый 27.06.2014, 22:24   #10
jovannyfx
 
Регистрация: 18.06.2014
Сообщений: 8
По умолчанию

Да я тоже так с начала подумал. Пробовал запрос в ворде
Код:
[A-Za-zА-Яа-яЁё])^0032([A-Za-zА-Яа-яЁё]
Ищет пробелы, но такой текст к замене не принимает, из-за синтаксиса выдает ошибку. Пробовал вручную через диалог поиск\замена, так там весь текст в строку не влазит(

Пробовал в Akelpad с регулярными выражениями типа [A-я]\s[А-я], так он выделяет пробел и по одной букве слева и справа от слова.
jovannyfx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поправить короткий скрипт Mick_20 JavaScript, Ajax 1 17.08.2013 18:44
Не могу понять как поправить скрипт Argon333 Общие вопросы по Java, Java SE, Kotlin 0 02.03.2011 12:08
помогите поправить макрос tem1112 Microsoft Office Excel 7 06.11.2009 21:25
Помогите поправить код SANTA_KLAUD Общие вопросы Delphi 5 30.05.2008 09:01
помогите поправить! koyot Работа с сетью в Delphi 4 13.02.2008 18:46