Как Перейти к Закладке в Word-VBA и вставить текст?

Я пытаюсь создать документ Word с очень простым макросом слова. Макрос ищет закладку, которую я поместил в текст, и затем добавляет дату, 2 недели в будущее, в том местоположении.

Но когда я создаю новый документ из шаблона, я продолжаю получать закладку, не найденную. Я был через него загрузками времен, и иногда закладка там, иногда ее там, но не разрешение Вам нажать "Go to".

Как я могу заставить это работать? Я добавил маленький кусочек кода к Document_New() событие, но это продолжает сообщать о Закладке, не найденной.

У меня есть документ в rar-файле, так как мой веб-сервер не может обработать .dotm расширения. Документ

Как я могу сделать его так, чтобы, когда новый документ представляется из этого шаблона, новый документ имел дату, 2 недели вперед, помещенный между 2 полужирными разделами?

Sub Two_Weeks_Ahead()
''# Two_Weeks_Ahead Makro
    Selection.GoTo What:=wdGoToBookmark, Name:="TwoWeeks"
    With ActiveDocument.Bookmarks
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With

    Dim dt As Date
    dt = DateAdd("d", 14, DateTime.Now)

    Selection.TypeText Text:=Format(dt, "yyyy-MM-dd")
End Sub

Private Sub Document_New()
    Selection.GoTo What:=wdGoToBookmark, Name:="TwoWeeks"
    With ActiveDocument.Bookmarks
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With

    Dim dt As Date
    dt = DateAdd("d", 14, DateTime.Now)

    Selection.TypeText Text:=Format(dt, "yyyy-MM-dd")
End Sub

8
задан Todd Main 22 July 2010 в 17:46
поделиться

1 ответ

Это может быть связано с использованием ActiveDocument в вашем коде. Документ вызывающего макроса может все еще быть ActiveDocument, поэтому он не найдет никакой закладки. Вот как я делаю это из документа/шаблона с поддержкой вызывающего макроса, который хорошо работает.

Sub AddTwoWeeks()
    Dim d As Document
    Set d = Documents.Add("C:\Users\Me\Desktop\Title.dotx")

    Dim dt As Date
    dt = DateAdd("d", 14, DateTime.Now)

    Dim b As Bookmark
    Set b = d.Bookmarks("TwoWeeks")
    b.Range.Text = Format(dt, "yyyy-MM-dd")
End Sub
3
ответ дан 6 December 2019 в 00:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: