Как переместить курсор в конец документа Word с помощью VBA с уровня доступа

Моя цель - добавить форматированный текст в конец ранее созданной формы документа Word в доступе с использованием VBA.

Мне удалось добавить форматированный текст в начало документа и добавить неформатированный текст в конец, используя: InsertAfter Text.

Я попытался переместить курсор в документе Word в конец с помощью .EndKey Unit:=wdStory, а затем введите текст. Эта функция отлично работает в словесном макросе. При доступе получаю ошибку: Неверные параметры. Я пробовал поместить эту функцию в разные места, но ни одно из них не работает.

Моя программа с EndKeyна первом месте:

      
 

Set wrd = CreateObject("Word.Application")

wrd.Documents.Open "\\tp.corp\data\" & a & "\document.docx"

wrd.Visible = True

wrd.Documents("document.docx").Activate


With wrd.Selection

    .EndKey Unit:=wdStory 

    .Font.ColorIndex = 2

    .InsertDateTime DateTimeFormat:="yyyy-MM-dd", InsertAsField:= _

        False, DateLanguage:=wdPolish, CalendarType:=wdCalendarWestern, _

        InsertAsFullWidth:=False

    .TypeText Text:=" text "

    .TypeParagraph

    .Font.Color = wdColorBlack 

И во втором:

      ```Dim wrd As Object

 

Set wrd = CreateObject("Word.Application")

wrd.Documents.Open "\\tp.corp\data\" & a & "\document.docx"

wrd.Visible = True

wrd.Documents("document.docx").Activate

wrd.Documents("document.docx").Selected.EndKey Unit:=wdStory

With wrd.Selection

    .Font.ColorIndex = 2

    .InsertDateTime DateTimeFormat:="yyyy-MM-dd", InsertAsField:= _

        False, DateLanguage:=wdPolish, CalendarType:=wdCalendarWestern, _

        InsertAsFullWidth:=False

    .TypeText Text:=" text "

    .TypeParagraph

    .Font.Color = wdColorBlack 

Любые подсказки или примеры будут очень признательны. Спасибо!

1 ответ

Поскольку вы используете константы Word, вы, очевидно, установили ссылку на Word. В этом случае вам лучше воспользоваться этим в полной мере. Например:

      Dim WdApp As New Word.Application, WdDoc As Word.Document, WdRng As Word.Range
With WdApp
  Set WdDoc = .Documents.Open("\\tp.corp\data\" & a & "\document.docx")
  With WdDoc
    Set WdRng = .Range.Characters.Last
    With WdRng
      .Font.ColorIndex = wdBlue
      .InsertDateTime DateTimeFormat:="yyyy-MM-dd", InsertAsField:= _
        False, DateLanguage:=wdPolish, CalendarType:=wdCalendarWestern, _
        InsertAsFullWidth:=False
        .TypeText Text:=" text "
        .Collapse wdCollapseEnd
        .Font.ColorIndex = wdBlack
        .TypeParagraph
    End With
  End With
End With

Примечание: нет необходимости, чтобы Word был видимым или чтобы что-то было выбрано, пока выполняется что-либо из этого.

Другие вопросы по тегам