Запись в заголовок документа Word с использованием Excel VBA - PullRequest
0 голосов
/ 06 марта 2019

Я создаю кнопку на листе Excel, которая генерирует отчет в Word.Пока все хорошо, за исключением того, что я пытаюсь иметь заголовок в документе, который выглядит следующим образом: enter image description here

, но в итоге он выглядит так: enter image description here

, где он появляется в виде этого странного дополнительного окна в нижней части моего документа и говорит «страница 3», когда есть только две страницы документа (или должно быть только две страницы).) мой код:

'Header

  With Wordapp
   .activeDocument.Bookmarks("Header").Select
   .Selection.TypeText Text:="CFD Analysis of Antenna EPA "
   .Selection.MoveRight Count:=1
   .Selection.TypeText Text:=today
   .Selection.MoveRight Count:=1
   .Selection.TypeText Text:=antennamanu & " " & modnum
  End With

1 Ответ

0 голосов
/ 07 марта 2019

Поведение, показанное на снимке экрана вопроса, связано с использованием метода Select.Эта отдельная панель заголовка в черновом представлении появилась во времена Word 2.0, где WYSIWYG не был доступен для верхних и нижних колонтитулов, комментариев и подобных вещей.

Вместо использования Select, работа напрямую сRange объекты помогут избежать проблемы.Код в вопросе может быть изменен следующим образом:

'Header
  Dim rngHeader as Word.Range 'or Object if this is late-binding
  With Wordapp
   Set rngHeader = .ActiveDocument.Bookmarks("Header").Range
   rngHeader.Text ="CFD Analysis of Antenna EPA " & vbTab & _
                    today & vbCr & antennamanu & " " & modnum
  End With

В исходном коде документ, очевидно, имеет символ табуляции и символ абзаца.Таким образом, Selection.MoveRight перемещается до табуляции, а затем к следующему абзацу.Приведенный выше код записывает их по мере необходимости, поэтому эти символы следует удалить из используемого шаблона отчета.

...