Последние записи
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
9th
Дек
Как убрать висячие предлоги в Word?
Posted by obzor under VBA
Надо отредактировать большой объем текста, убрать висячие предлоги, союзы и т.д. с конца строки (Word 2013).
Есть такой вариант решения с помощью автозамены:
В «Найти» введите строку «([ ^s])([а-яА-Яa-zA-Z]{1;2}) ([а-яА-Яa-zA-Z])», в поле «Заменить на», введите строку «\1\2^s\3»
Предлоги, союзы приклеиваются с помощью неразрывного пробела к следующему слову.
Все работает хорошо, НО, приклеиваются они не только в конце строки, а по всему тексту.
Можно ли как-то сделать так чтобы это работала только с конечными символами???
Казанский
Попробуйте макрос:
Sub ВисячиеПредлоги1()
Dim s$, n&
Selection.HomeKey Unit:=wdStory
Do
Selection.EndKey Unit:=wdLine
If Selection.End + 1 >= ActiveDocument.Range.End Then Exit Do
Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend
s = Selection.Text
If s = vbCr Then 'пустой абзац, выделение сместилось на строку вверх!
Selection.MoveDown Unit:=wdLine, Count:=1
ElseIf LCase$(Right$(s, 2)) Like "[a-zа-яё] " And (Len(s) = 2 Or Len(s) = 3) Then
Selection.EndKey Unit:=wdLine
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.TypeText Text:=Chr(160) 'неразрывный пробел; происходит переход на сл. строку
n = n + 1
Selection.MoveUp Unit:=wdLine, Count:=1
End If
Selection.MoveDown Unit:=wdLine, Count:=1
Loop
MsgBox "Выполнено замен: " & n, vbInformation
End Sub
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)