Тема: Как выделить все абзацы начинающиеся с определенного символа ?
Как выделить в тексте все абзацы начинающиеся с определенного символа ?
Есть такой макрос ?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум Microsoft Word » Автоматизация » Как выделить все абзацы начинающиеся с определенного символа ?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как выделить в тексте все абзацы начинающиеся с определенного символа ?
Есть такой макрос ?
[quote=myreg]Как выделить в тексте все абзацы начинающиеся с определенного символа ?
Есть такой макрос ?[/quote]
Можно предложить такой макрос:
Sub ParaBold1()
Dim Symb As String
Dim Par As Paragraph
For Each Par In ActiveDocument.Paragraphs
Selection.MoveDown Unit:=wdParagraph, Count:=1
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Symb = Selection.Text
If Symb = "В" Then
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
Selection.Font.Bold = True
End If
Next Par
End Sub
В строку:
If Symb = "В" Then
вместо символа В подставьте тот символ, который Вам нужен.
Огромное спасибо
Так будет покорректнее:
Sub ParaBold2()
Dim Symb As String
Dim Par As Paragraph
For Each Par In ActiveDocument.Paragraphs
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Symb = Selection.Text
If Symb = "В" Then
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
Selection.Font.Bold = True
End If
Selection.MoveDown Unit:=wdParagraph, Count:=1
Next Par
End Sub
Перед запуском макроса нужно установить курсор перед отрывком, в котором нужно выделять параграфы.
Пробовал использовать второй вариант - не работает:
Compile error:
Expected End Sub
Пробовал использовать второй вариант - не работает:
Compile error:
Expected End Sub
А первый вариант работает?
Ошибка "Expected End Sub", как мне кажется, говорит о том, что отсутствует оператор:
End Sub
парный для оператора:
Sub...
Скорее всего, Вы его не скопировали, скопировали не туда или ранее у Вас не хватало этого оператора.
Проверьте, пожалуйста, в рабочем модуле макросов следующие пары операторов:
Sub...
...
End Sub
За каждым оператором:
Sub...
должен следовать свой оператор:
End Sub
Второй скопировал полностью. См. скрин ошибки.
Сейчас испытал и 1-й - таже самая ошибка см. скрин.
На скрине видно, что два раза подряд идет оператор
Sub...
Один из них нужно удалить.
Удалил, но .. оба макроса после запуска перелистывают документ, но строки остаются не выделенными. см. видео
внешняя ссылка
If Symb = "В" Then
Насколько я помню, сюда (вместо В) надо ввести символ, который Вам нужен.
Если возникнут проблемы, выложите, пожалуйста, часть Вашего файла и укажите символ, по которому нужно выделять абзацы.
См. файл - нужно выделить строки начинающиеся с символа *
Макросы и первый и второй делают эти строчки жирным шрифтом
Макросы и первый и второй делают эти строчки жирным шрифтом
Да, выделяют жирным шрифтом.
Можно сделать с этими абзацами и что-то другое.
Что именно Вы хотели бы сделать с выделенным текстом?
Применить другой макрос и отформатировать по другому. Буду выделять этот текст по формату "жирный шрифт" и т.д.
ОК. Большое спасибо.
К сожалению, не нашел способ объединения нескольких диапазонов в Ворде.
Поэтому, если больше никто ничего не предложит, советую вставить Ваш второй макрос в указанный выше.
Тоже задавался вопросом объединения областей документа, но, видимо, такая функция не доступно. Есть вариант - запоминать номера параграфов в массив или текст параграфов, а затем воспроизводить действия для параграфов из массива.
Тоже задавался вопросом объединения областей документа, но, видимо, такая функция не доступно. Есть вариант - запоминать номера параграфов в массив или текст параграфов, а затем воспроизводить действия для параграфов из массива.
Мне кажется, это будет сложновато и для выделения нескольких параграфов с разрывами (не подряд) вряд ли подойдет.
Fck_This пишет:Тоже задавался вопросом объединения областей документа, но, видимо, такая функция не доступно. Есть вариант - запоминать номера параграфов в массив или текст параграфов, а затем воспроизводить действия для параграфов из массива.
Мне кажется, это будет сложновато и для выделения нескольких параграфов с разрывами (не подряд) вряд ли подойдет.
Не, не сложно - Делаем поиск по маске
Selection.Find.execute
Потом
Do while execute
- Помещаем найденный текст (или номера параграфов) в динамический массив
Loop
Опять же через цикл выполняем необходимые действия. Но именно выделить! одновременно несколько абзацев с разрывами - такого я не смог сделать, хотя задумка такая была.
Создал специальные темы на форумах: http://wordexpert.ru/forum/viewtopic.php?id=3042 и внешняя ссылка.
Все говорят, что выделить диапазоны с промежутками в Word нельзя.
Так что - приходится пользоваться теми возможностями, которые есть.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум Microsoft Word » Автоматизация » Как выделить все абзацы начинающиеся с определенного символа ?