Как переместить курсор в конец документа 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 был видимым или чтобы что-то было выбрано, пока выполняется что-либо из этого.