Узнать текст между двумя закладками в шапке страницы MSWord

Я ищу способ узнать текстовое содержимое между двумя закладками, размещенными в заголовке страницы MSWord.

Предположим, две закладки — BKM_1 и BKM_2. также текст между двумя закладками — «Тест».

Local loWordApplication, loDoc, loRange
loWordApplication = CREATEOBJECT("Word.Application")
loDoc = loWordApplication.Documents.Open("C:\Example.doc")
IF loDoc.BookMarks.EXISTS("BKM_1") AND loDoc.BookMarks.EXISTS("BKM_2") 
   loRange = loDoc.RANGE(loDoc.BookMarks("BKM_1").START, loDoc.BookMarks("BKM_2").START) 
   loRange.SELECT
   ?loRange.TEXT && Printing the value here and expecting the result as "Test"
ENDIF

Но даже несмотря на то, что закладки существуют, приведенное выше не дает того результата, который я ищу. Пожалуйста помоги!


person ecasper    schedule 15.11.2012    source источник


Ответы (1)


Верхние и нижние колонтитулы — это истории другого типа ‹ g > — без каламбура:

#Define wdCharacter 1
Local loWordApplication, loDoc, loRange
loWordApplication = Createobject("Word.Application")
loDoc = loWordApplication.Documents.Open("C:\Example.doc")
If loDoc.BookMarks.Exists("BKM_1") And loDoc.BookMarks.Exists("BKM_2") And ;
        loDoc.BookMarks("BKM_1").StoryType = loDoc.BookMarks("BKM_2").StoryType
    Local lnCharacters
    lnCharacters = loDoc.BookMarks("BKM_2").Start-loDoc.BookMarks("BKM_1").Start
    If loDoc.BookMarks("BKM_1").StoryType != 1
        loDoc.StoryRanges(loDoc.BookMarks("BKM_1").StoryType).Select()
    Endif

    loDoc.BookMarks("BKM_1").Range.Select()
    loDoc.Application.Selection.Moveend(wdCharacter, m.lnCharacters)

    loRange = loWordApplication.Selection

    ?loRange.Text && Printing the value here and expecting the result as "Test"
Endif
loWordApplication.Quit
person Cetin Basoz    schedule 05.12.2012