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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2016, 08:30   #1
КарандашТМ
 
Аватар для КарандашТМ
 
Регистрация: 06.08.2014
Сообщений: 6
По умолчанию Замена пробела на неразрывный

Здравствуйте!

есть макрос для замены обычного пробела на неразрывный для предлогов
(чтобы не было "висячих" предлогов на конце строк)

Код:
Sub nbsp_pred()
'
' Замена пробелов на неразрывные
'
Selection.WholeStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
        .Text = "( [ВвСсКк№]) "
        .Replacement.Text = "\1^s"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.MoveLeft Unit:=wdCharacter, Count:=1
End Sub
Однако, в данном случае поиск идёт по однобуквенным предлогам.

Как можно сделать тоже самое, но для двух- и более буквенных предлогов?
Например, для "по", "до" и прочее...

2. Подскажите, как избавиться от "задваивания" описания предлогов в приведённом макросе? Чтобы регистр был любой.

Хотя в макросе и указано

.MatchCase = False

но, почему-то, на результат это никак не влияет .
КарандашТМ вне форума Ответить с цитированием
Старый 24.05.2016, 01:54   #2
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Чтоб два раза не вставать

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Углубляться пока недосуг, это часа на 2. Скажу пока лишь, что параметры
Код:
        .MatchCase = False
        .MatchWholeWord = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
при установке
Код:
        .MatchWildcards = True
вообще-то не нужны.
Ясно, что это макрос, но лишнее лучше убрать.

Кстати говоря, если запишете замену "По " на "По^s" (и т. д.) при
Код:
        .MatchWildcards = False
— оттуда тоже.

А вот и почти доделанный пример — макрос, находящий предлоги в конце строки!
Sasha_Smirnov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Excel, заменить "неразрывный пробел" на обычный Meta2 Microsoft Office Excel 8 03.11.2010 21:08
Как заменить обычний пробел на неразрывный пробел Jaroslav Microsoft Office Excel 2 05.05.2010 11:57
замена пробела запятой Pljus1 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 15.04.2010 22:09
Неразрывный пробел средствами VBA tolikman Microsoft Office Word 5 23.03.2009 05:11
неразрывный диапазон zetrix Microsoft Office Excel 0 31.10.2006 07:26