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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2015, 14:42   #1
DBEER
Пользователь
 
Регистрация: 13.03.2014
Сообщений: 76
По умолчанию Замена TXT1 на TXT2 в Selection при условии, что их (TXT2) там м.б. несколько

Конкретней: есть фрагмент текста, где добрый Юзер настучал кучу пробелов между словами, пытаясь доступными ему средствами "украсить" форматирование. Надо в выделенном фрагменте заменить любое кол-во пробело, идущих сплошняком, на один. В Selection`е м.б. несколько таких мест. Самостоятельные поиски и найденное на этом форуме не дали должного эффекта. Одна из "Грабель" :

Код:
Range2.Find.Execute FindText:="  ", ReplaceWith:=" ", Replace:=wdReplaceAll
Приводит к замене не только в Selection`е, но и в последующем тексте, что не требуется.
DBEER вне форума Ответить с цитированием
Старый 30.01.2015, 16:20   #2
cw_o
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 92
По умолчанию

обрабатывайте Selection в цикле
Код:
Sub ReplaceSpaces()
    Dim Result As Boolean
    Result = True
    Do
        With Selection.Find
            .Text = "  "
            .Replacement.Text = " "
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Result = Selection.Find.Execute(Replace:=wdReplaceAll)
    Loop Until Not Result
End Sub
cw_o вне форума Ответить с цитированием
Старый 30.01.2015, 16:31   #3
DBEER
Пользователь
 
Регистрация: 13.03.2014
Сообщений: 76
По умолчанию

Спасибо за отклик, но не совсем то: те же грабли - сразу удаляются и все сдвоенные пробелы за пределами Selection`а. А там уже не надо - другая ситуация.
Selection выделенный текст, где (и только там) надо произвести замену.
DBEER вне форума Ответить с цитированием
Старый 30.01.2015, 16:37   #4
cw_o
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 92
По умолчанию

Прошу прощения, замените одну строчку
Код:
.Wrap = wdFindStop
cw_o вне форума Ответить с цитированием
Старый 30.01.2015, 17:34   #5
DBEER
Пользователь
 
Регистрация: 13.03.2014
Сообщений: 76
По умолчанию

ОК!!! Заррааботалла!!!!
КОт Матроскин (С)
DBEER вне форума Ответить с цитированием
Старый 30.01.2015, 18:35   #6
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Можно без цикла
Код:
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = " ( )@"
        .Replacement.Text = " "
        .Forward = True
        .Wrap = wdFindStop
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 02.02.2015, 10:02   #7
DBEER
Пользователь
 
Регистрация: 13.03.2014
Сообщений: 76
По умолчанию Ещё лучше!!!

Спасибо, STEP_UA. А где почитать про правила пользования
Wildcards (сам язык - Wildcards-символы)??
DBEER вне форума Ответить с цитированием
Старый 02.02.2015, 10:17   #8
DBEER
Пользователь
 
Регистрация: 13.03.2014
Сообщений: 76
Подмигивание Нашел сам..

ВОт, например:
http://word.mvps.org/faqs/general/usingwildcards.htm
Но, хотелось бы, чего-нить канонического
DBEER вне форума Ответить с цитированием
Старый 02.02.2015, 11:40   #9
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

чем не устраивает справка ворда?
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 03.02.2015, 15:37   #10
DBEER
Пользователь
 
Регистрация: 13.03.2014
Сообщений: 76
Смех Даже предположить не мог...

...что они в самом Ворде описаны (в хоорошем смысле этого слова). И даже по-русски.
DBEER вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что написать в УСЛОВИИ ОТБОРА???? Кудерек Microsoft Office Access 1 17.02.2015 23:45
Замена значения при условии dariya92 Microsoft Office Excel 0 21.07.2012 15:34
Изменение строк матрицы А при условии, что на главной диагонали есть отрицательный эл-нт Fri Помощь студентам 1 20.09.2011 11:38
Joomla 1.0 там при добавлении новости нет кнопки ок типо добавить ! Как там добавлять ??? valerka92 WordPress и другие CMS 1 10.09.2011 19:27
код проги внутри, что там не так??? Gula1706 Общие вопросы C/C++ 1 18.12.2010 00:27