Тема: Замена каждого третьего пробела на неразрывный пробел
Здравствуйте!
Подскажите пожалуйста, как в тексте заменить каждый третий пробел на неразрывный пробел? Возможно ли это делать с помощью макроса?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум Microsoft Word » Настройка и Форматирование » Замена каждого третьего пробела на неразрывный пробел
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здравствуйте!
Подскажите пожалуйста, как в тексте заменить каждый третий пробел на неразрывный пробел? Возможно ли это делать с помощью макроса?
Да, это возможно с помощью макроса.
Выполните поиск пробела и используйте счетчик найденных пробелов.
Написал макрос, но как в него добавить счетчик пробелов?
Sub Замтретьегопробнанеразрывный()
With ActiveDocument.Range.Find
.Text = "^0032"
.Replacement.Text = "^s"
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
заменила неразрывный пробел на обратную кавычку (для наглядности )
в файле --нормальный пробел
Нам для объемного`проекта требуются переводчики`с русского на`турецкий язык.
Нужен`качественный перевод, никакого`машинного перевода! Это`судебные документы.
Ставка`6$/1800ЗБП
Выплата в`течении месяца после`сдачи (после проверки`заказчиками)
Прошу указать`возможный недельный объем,`в т.ч. при`наличии коллег и`работе в группе`
Укажите онлайн контакты`(скайп, аську, мэйл`агент), наличие диплома`переводчика, опыт работы`в данной тематике
Sub w130408_1123()
Dim pr As Paragraph
Dim k1, j1, j2, j2k, s1
j1 = 0
k1 = 0 '' если счет по документу
For Each pr In Word.ActiveDocument.Paragraphs
j1 = j1 + 1
Debug.Print j1;
''k1=0 '' если счет в каждом параграфе
j2 = 0
j2k = pr.Range.Characters.Count
Do While j2 < j2k
j2 = j2 + 1
'Debug.Print Asc(c1), c1
s1 = pr.Range.Characters(j2).Text
If s1 = ChrW(160) Then
pr.Range.Characters(j2).Text = " "
s1 = " "
End If
If s1 = " " Then
k1 = k1 + 1
If k1 = 3 Then
pr.Range.Characters(j2).Text = ChrW(160)
k1 = 0
End If
End If
Loop
Next pr
Debug.Print Now
End Sub
Ок, все работает! Благодарю!
Единственный момент - возможно ли чтобы макрос применялся только к выделенному фрагменту текста?
В этом случае, макрос может так начинаться?
Sub w130408_1123()
Dim myRange As Range
Set myRange = Selection.Range
With myRange.Find
Dim pr As Paragraph
Dim k1, j1, j2, j2k, s1
j1 = 0
k1 = 0 '' если счет по документу
.......и далее остальное ....
Next pr
Debug.Print Now
End Sub
''For Each pr In Word.ActiveDocument.Paragraphs
For Each pr In Selection.Paragraphs
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум Microsoft Word » Настройка и Форматирование » Замена каждого третьего пробела на неразрывный пробел