Word VBA: Установка курсора после искомого слова с помощью макроса

Автор Nanobot, 27 февраля 2018, 17:00

Nanobot

Добрый день! Подскажите пожалуйста, как с помощью VBA переместить курсор после определенного слова. Пробовал делать так, но ничего не выходит:

ActiveDocument.Content.MoveEndUntil Cset:="Слово", Count:=wdForward

Администратор

Замечания по вашему коду.

Замечание 1

Здесь:
ActiveDocument.Content.MoveEndUntil Cset:="Слово", Count:=wdForward

Cset - это один или несколько символов, которые не имеют между собой никакой связи.
Метод "MoveEndUntil" делает так, используя параметр "Cset". Метод "MoveEndUntil" берёт символ, который находится справа от конца и смотрит, есть ли этот символ в параметре "Cset". То есть смотрит не всё слово в параметре "Cset", а каждый символ отдельно. Если справа есть буква "С", то остановка. Если справа есть символ "л", то остановка и т.д. до последней буквы "о".


Замечание 2

ActiveDocument.Content - это весь текст файла. Вы хотите двигать конец файла вперёд (Count:=wdForward), но двигать некуда: уже упёрлись в конец.

Администратор

Вот так можно поставить курсор после заданного слова:

Sub макрос()

    With ActiveDocument.Range.find
        .Text = "Слово"
        If .Execute = True Then
            .Parent.Collapse Direction:=wdCollapseEnd
            .Parent.Select
        End If
    End With

End Sub