У меня уже открыт один документ Word ("Template1"). Я пытаюсь написать код VBA, чтобы открыть файл документа Word («FileWithData») и скопировать информацию из «FileWithData» в «Template1». «FileWithData» может быть любым файлом, и именно поэтому я использую OpenDialog.
Все работает, но я застрял, когда дело доходит до активации окна «FileWithData», чтобы начать процесс «Копирование и вставка».
Dim intChoice As Integer
Dim strPath As String
Dim objWord As Object
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
intChoice = Application.FileDialog(msoFileDialogOpen).Show
'if the user selects a file
If intChoice <> 0 Then
'get the path selected
strPath = Application.FileDialog( _
msoFileDialogOpen).SelectedItems(1)
'opens the document
objWord.Documents.Open (strPath)
FileName = objWord.ActiveDocument.Name
и тут обрывается :(
Windows(FileName).Activate
Selection.GoTo What:=wdGoToBookmark, Name:="Page1"
With ActiveDocument.Bookmarks
.DefaultSorting = wdSortByName
.ShowHidden = True
End With
Selection.Copy
Windows("Template1").Activate
Selection.GoTo What:=wdGoToBookmark, Name:="Page1"
With ActiveDocument.Bookmarks
.DefaultSorting = wdSortByName
.ShowHidden = True
End With
Selection.PasteAndFormat (wdFormatOriginalFormatting)
Selection.MoveLeft Unit:=wdCharacter, Count:=2
Я получаю следующую ошибку: Ошибка времени выполнения "5941"
Запрошенный элемент коллекции не существует.
CreateObject
, у меня не было причин сомневаться в этом... 24.12.2018