У меня есть этот код Excel VBA, который может экспортировать данные в заполнители в Word. Но когда я изменил его, чтобы найти и заменить заполнитель в заголовке Word, я получаю вышеуказанную ошибку
Вот код, с которым я работал: ошибка происходит по этой линии ".Application.Selection = Рабочие листы ("Детали"). Диапазон ("C22"). Значение "
Sub DespatchPdf()
Dim wApp As Word.Application, wDoc As Word.Document
Dim HdTxt As String
Set wApp = CreateObject("Word.Application")
wApp.Visible = True
HdTxt = Worksheets("Details").Range("C22").Value
Set wDoc = wApp.Documents.Open("C:\file.docx")
'Optimize Code
Application.ScreenUpdating = False
Application.EnableEvents = False
'Copy Range from Excel
Set tbl = ThisWorkbook.Worksheets("Takeda SoW").Range("G213:AJ471")
'Create an Instance of MS Word
On Error Resume Next
'Is MS Word already opened?
Set wApp = GetObject(Class:="Word.Application")
'Clear the error between errors
Err.Clear
'If MS Word is not already open then open MS Word
If wApp Is Nothing Then Set wApp = CreateObject(Class:="Word.Application")
'Handle if the Word Application is not found
If Err.Number = 429 Then
MsgBox "Microsoft Word could not be found, aborting."
GoTo EndRoutine
End If
On Error GoTo 0
'Make MS Word Visible and Active
wApp.Visible = True
wApp.Activate
'Create a New Document
'Set myDoc = WordApp.Documents.Add
'Copy Excel Table Range
tbl.Copy
'Paste Table into MS Word
wDoc.Bookmarks("BK1").Range.PasteExcelTable _
LinkedToExcel:=False, _
WordFormatting:=False, _
RTF:=False
With wApp
'.ActiveWindow.View.ReadingLayout = False
.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
End With
With wDoc
.Application.Selection.Find.Text = "InsertTitle1"
.Application.Selection.Find.Execute
.Application.Selection = Worksheets("Details").Range("C22").Value
.Application.Selection.EndOf
End With
'Autofit Table so it fits inside Word Document
Set WordTable = wDoc.Tables(1)
WordTable.AutoFitBehavior (wdAutoFitWindow)
EndRoutine:
'Optimize Code
Application.ScreenUpdating = True
Application.EnableEvents = True
'Clear The Clipboard
Application.CutCopyMode = False
wDoc.ExportAsFixedFormat OutputFileName:="C:\file.pdf", ExportFormat:=wdExportFormatPDF
End Sub
Любая помощь, чтобы обойти эту ошибку и заменить текст" InsertTitle1 "в заголовке, будет оценена