Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.53/285: Рейтинг темы: голосов - 285, средняя оценка - 4.53
1 / 1 / 0
Регистрация: 27.06.2012
Сообщений: 10

Выделение фрагмента текста в Word, заключенного между заданными словами

28.06.2012, 08:46. Показов 58619. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Помогите, пожалуйста с кодом макроса!
Дан файл с текстом:
.............
...Олег....
.............
...Иван....
.............
Необходимо выделить и скопировать все, что находится после слова "Олег" до слова "Иван".

Добавлено через 1 час 27 минут
Как поставить курсор после слова "Олег" я понял, но не понимаю, как выделить текст (или сосчитать количество символов) до слова Иван ((
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.06.2012, 08:46
Ответы с готовыми решениями:

Изменение текста в Word, заключенного между кавычками
Не могу разобраться в коде. Надо чтобы он во всем тексте word нашел все между кавычками « и » и изменил шрифт на ЖИРНЫЙ и КУРСИВ ...

Дана строка текста, между словами текста минимум один пробел.Написать программу, которая между словами текста ставит по три точки!!
Дана строка текста, между словами текста минимум один пробел.Написать программу, которая между словами текста ставит по три точки!!...

Копирование текста между заданными границами в word
Здравствуйте, уважаемые. Возникла необходимость из огромного архива (файлов doc) договоров выбрать и скопировать в таблицу нужную...

31
4 / 4 / 0
Регистрация: 18.02.2013
Сообщений: 539
01.11.2013, 10:53
Студворк — интернет-сервис помощи студентам
Slamzor, спс
0
2 / 2 / 1
Регистрация: 23.10.2016
Сообщений: 42
26.10.2016, 06:08
Парни а как осуществить это если надо скопировать текст только с первым совпадением Олег----Иван
Просто таких сочетаний может быть несколько, а мне нужно только самое первое найденное с верху в низ на документе?

Добавлено через 3 минуты
И еще осуществить бы это на Visual Basic 6.0
0
0 / 0 / 0
Регистрация: 25.06.2016
Сообщений: 4
02.11.2016, 17:34
есть слова

dead dɛd
deaf dɛf
head hɛd

мне нужно во всех словах выделить, ну допустим, "ea" именно ТОЛЬКО ВЫДЕЛИТЬ и не изменять
так как если бы я это делала, выделив "ea" непосредственно в первом слове, и далее с помощью ПРАВКА-НАЙТИ-(вкладка)НАЙТИ-(установив галочку)ВЫДЕЛИТЬ ВСЕ ЭЛЕМЕНТЫ,НАЙДЕННЫЕ Ввыпадающий список) ОСНОВНОЙ ДОКУМЕНТ и нажав кнопочку НАЙТИ ВСЕ

КОГДА Я ДЕЛАЮ ЗАПИСЬ МАКРОСА ТО У МЕНЯ ПОЛУЧАЕТСЯ
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Выделить()
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "ea"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindAsk
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
End Sub
НО запуская этот макрос снова, у меня не получается такого результата, как через НАЙТИ в меню ПРАВКА
чего же не хватает
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
02.11.2016, 19:37
Цитата Сообщение от МарияМихайловна Посмотреть сообщение
чего же не хватает
Не хватает собственно команды "выполнить поиск", этот код только устанавливает параметры поиска. Макрорекордер эту команду записывает!
Visual Basic
1
    Selection.Find.Execute
0
0 / 0 / 0
Регистрация: 25.06.2016
Сообщений: 4
02.11.2016, 20:41
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Выделить()
    w = AscW(Selection)
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "ea"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindAsk
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute FindText
End Sub
находит только в слове dead и все а в других нет
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
06.11.2016, 00:49
МарияМихайловна, я понял, что Вы хотите. К сожалению, эта команда не записывается в макрос в 2007 и 2010 и, вероятно, не имеет аналога в VBA.
Но можно провести поиск-замену фразы, указав формат замены: выделение цветом. Будет использован текущий цвет "фломастера".
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub Макрос5()
  Selection.HomeKey Unit:=wdStory
  Selection.Find.ClearFormatting
  Selection.Find.Replacement.ClearFormatting
  Selection.Find.Replacement.Highlight = True
  With Selection.Find
    .Text = "ea"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
  End With
  Selection.Find.Execute Replace:=wdReplaceAll
End Sub
0
 Аватар для oleg526
1 / 1 / 0
Регистрация: 28.09.2013
Сообщений: 83
17.11.2016, 15:39
Обновим тему.
Подскажите, как воспользоваться полученным фрагментом, для замены слова именно в нем?
0
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
18.11.2016, 22:31
А тема и не думала устаревать*. Полчаса экспериментирования — и вот искомая подсказка [рисунок 1]:
Visual Basic
1
2
3
Sub ReplacementInTheSelection()
Selection.Range.Find.Execute ",", Wrap:=wdFindStop, replacewith:="."
End Sub
В первых кавычках — что меняем, во вторых — на что.
__________
* 115 голосов за 4 года [рисунок 2] (это при том, что у 99,99% тем вообще нет ни голоса, ни лайка («спасиба»))
Миниатюры
Выделение фрагмента текста в Word, заключенного между заданными словами   Выделение фрагмента текста в Word, заключенного между заданными словами  
0
1 / 1 / 0
Регистрация: 08.12.2016
Сообщений: 2
08.12.2016, 20:39
Есть заача, формирую таблицу с текстом из другой таблицы( они отличаются по форм) для этого: макрос в котором с помощью TAB перемещаюсь по ячейкам, они выделяются, и копитую втавляя в нужное место в другой таблице. Проблема возникает когда в исходной ячейке пусто, и функция Selection.Copy не может быть выполнена.

Подскажите как можно проверить выделен текст или нет, и как прописать в буфер "ничего", тоесть очистить буфер.
спасибо.

фрагмент текста выглядит примерно так для одной ячейки :

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 Windows("Опросной лист.docx").Activate
    Selection.MoveDown Unit:=wdLine, Count:=1
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.MoveDown Unit:=wdLine, Count:=1
    Selection.MoveRight Unit:=wdCell
    Selection.Copy
       
       
    Windows("Наряд_задание_ПСЦ.doc [Режим ограниченной функциональности]"). _
        Activate
    Selection.MoveDown Unit:=wdLine, Count:=7
    Selection.MoveRight Unit:=wdCell
    Selection.MoveRight Unit:=wdCell
    Selection.PasteAndFormat (wdPasteDefault)
    Selection.MoveRight Unit:=wdCell
0
 Аватар для KoGG
5730 / 1633 / 419
Регистрация: 23.12.2010
Сообщений: 2,455
Записей в блоге: 1
09.12.2016, 11:22
Программирование в стиле макрорекордера лично Вам противопоказано.
Не пользуйтесь такими методами.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Sub Копирование_в_таблицы_активного_документа_из_другого_открытого()
    Dim i%, j%, k%, MinRow%, MinCol%, SimvStroka$
    Dim dTarget As Document, dCur As Document
    Set dTarget = ActiveDocument
    For Each dCur In Documents
        If Not (dCur Is dTarget) Then
            If dCur.Tables.Count = dTarget.Tables.Count Then
                For k = 1 To dTarget.Tables.Count
                    With dTarget.Tables(k)
                        MinRow = IIf(.Rows.Count < dCur.Tables(k).Rows.Count, .Rows.Count, dCur.Tables(k).Rows.Count)
                        MinCol = IIf(.Columns.Count < dCur.Tables(k).Columns.Count, .Columns.Count, dCur.Tables(k).Columns.Count)
                        For i = 1 To MinRow
                            For j = 1 To MinCol
                                SimvStroka = dCur.Tables(k).Cell(i, j).Range.Text
                                SimvStroka = Left(SimvStroka, Len(SimvStroka) - 2) ' Обрезка символов конца ячейки
                                .Cell(i, j).Range.Text = SimvStroka
                            Next j
                        Next i
                    End With
                Next k
                Exit For
            End If
        End If
    Next
End Sub
Этот пример - для одинаковых таблиц.
0
1 / 1 / 0
Регистрация: 08.12.2016
Сообщений: 2
10.12.2016, 10:12
KoGG Спасибо за оперативность. Я не сказал о том что исходная таблица находится в WORD, просто тема этой ветки как рах про WORD. как можно реалиховать , для word таблиц, причем конечная таблица, куда копируется, может быть как word так и excel, не принципиально. с нее просто производится печать и она азакрыватся. Можно ли организовать работу макроса между word и excel?
1
0 / 0 / 0
Регистрация: 06.02.2025
Сообщений: 3
13.02.2026, 11:20
Здравствуйте!
Как добавить в этот цикл, условие If Selection.Text = "слово" Then - будет осуществляться поиск уже между Сашей и Машей
Else продолжаем поиск между Олег и Иван.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.02.2026, 11:20

Выделение текста в Word между символами
Как выделить текст в Word'е между определенными символами, например &quot;%&quot;, для последующей его замены? Документ до замены: Текст_1 ...

Выделение фрагмента текста в textarea
Как это возможно сделать? Вот как я делал выделение текста в теге, но такой не канает на текстовые поля: &lt;div...

Выделение (подсвечивание) фрагмента текста в ячейке DataGridView
Здравствуйте. Я реализовал поиск по ячейкам DataGridView, хочу сделать выделение (подсвечивание) фрагмента текста в ячейках с найденной...

Определить количество символов фрагмента, заключенного в круглые скобки.
Помогите пожалуйста.В строке имеется единственный фрагмент, заключенный в круглые скобки. Определить количество составляющих его символов.

Как макросом в word-e выделить два несмежных фрагмента текста?
Мне кажется, что должна существовать функция позволяющая добавлять новое выделение к уже существующему, чтото типа этого: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru