Разобрался с помощью этого поста Как использовать методы выделения слов в Excel VBA - или, более конкретно, комментарий @TimWilliams внизу второго ответа.
Проблема с Selection
заключается в том, что он будет ссылаться на Excel.Я пытался связать его с документом Word, но это свойство приложения:
На панели окна документа может быть только один объект Selection, и только один объект Selection во всем приложении можетбыть активным.
Объект выделения
Я также вытащил CreateWord к отдельной функции.
Public Sub CreateWordDoc()
Dim oWrd As Object, oWrdDoc As Object
Dim BkMkName As String, BkMkValue As String
Const docloc As String = "C:\Users\DKC\Desktop\Basetemplate.docx"
Set oWrd = CreateWord
Set oWrdDoc = oWrd.documents.Open(docloc, False)
With Sheet3
BkMkName = .Cells(4, 2)
BkMkValue = .Cells(4, 3)
End With
oWrdDoc.Bookmarks(BkMkName).Select
oWrd.Selection.InsertFile Filename:=BkMkValue
End Sub
Public Function CreateWord(Optional bVisible As Boolean = True) As Object
Dim oTempWD As Object
On Error Resume Next
Set oTempWD = GetObject(, "Word.Application")
If Err.Number <> 0 Then
Err.Clear
On Error GoTo ERROR_HANDLER
Set oTempWD = CreateObject("Word.Application")
End If
oTempWD.Visible = bVisible
Set CreateWord = oTempWD
On Error GoTo 0
Exit Function
ERROR_HANDLER:
MsgBox "Error " & Err.Number & vbCr & _
" (" & Err.Description & ") in procedure CreateWord."
Err.Clear
End Function
Редактировать -
Поэтому, если вы не хотите использовать код, который я разместил, ваш код должен работать, изменив
Selection.InsertFile FileName:=BookmarkValue
до
WordApp.Selection.InsertFile FileName:=BookmarkValue