Як вибрати текст між двома «закладками» у Word VBA?


2

Примітка: Спочатку я запитав, як вибрати текст з певної точки вниз, але у мене є рішення для цього:

Dim f As Word.Field
For Each f In ActiveDocument.Fields
    If f.Type = wdFieldAddin And f.Data = "BeginBody" Then
        f.Select
        Selection.EndKey Unit:=wdStory, Extend:=wdExtend
    End If
Next

Тепер, моє запитання - як вибрати текст між "BeginBody" і "EndBody"?

Дякую

Відповіді:


3

Використовуйте два закладки . Назвіть стартову закладку "початок" і кінцеву закладку "кінець".
Після цього наступний код виділить повний текст між цими двома.

Sub SelectTextBetweenBookmarks()

    Set rngStart = ActiveDocument.Bookmarks("Start").Range
    Set rngEnd = ActiveDocument.Bookmarks("End").Range

    Range(rngStart.Start, rngEnd.End).Select

End Sub

enter image description here


Дякую, я не знав про закладки в текстових документах. Я отримую помилку "sub або функція не визначена" на рядку: "Діапазон (rngStart.Start, rngEnd.End). Виберіть" Чи може щось todo з ним бути doc / точка, а не docx / dotm? Незважаючи на всіх, хто використовує 2007 або 2010, нам потрібен кожний документ як файл doc для іншої програми.
Ernst

@Ernst Ви налаштували ці дві закладки правильно як я сказав? Я знову перевірив його знову і він працює
nixda

здається так, початок до кінця, і імена правильні, навіть якщо Word чутливий до регістру.
Ernst

2
Я додав у "ActiveDocument". до діапазону, і тепер він працює
Ernst

Ну, це дивно. Він повинен працювати і без нього ActiveDocument оскільки обидва аргументи вже посилаються ActiveDocument. Хм, яку версію Office ви використовуєте? Чи відкрито кілька файлів слів?
nixda
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.