Как исправить ошибку во время выполнения 6124 «Вы не можете редактировать этот выбор, потому что он защищен» - PullRequest
0 голосов
/ 31 января 2020

У меня есть этот код 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 "в заголовке, будет оценена

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...