Я ищу способ программно добавить заголовок текущего раздела в заголовок каждой страницы в текстовом документе. Я нашел this page, в котором объясняется, как получить доступ и изменить заголовок. Мое понимание после прочтения этой ссылки состоит в том, что для каждой страницы нужно добавить что-то другое, чтобы добавить нужное поле. Теперь я искал это поле без успеха. This other page дает список полей, а wdFieldSection
выглядит очень многообещающим, но он не работает в моем документе (он добавляет «1» на каждую страницу).Программно добавляя заголовки разделов в заголовок документа MS Word
1
A
ответ
2
Прямым (и рекомендуемым) способом достижения этого является использование поля STYLEREF в заголовке, указывающего на стиль, используемый для форматирования заголовков разделов.
Другой вариант, который дает вам больше гибкости, заключается в добавлении перекрестной ссылки на соответствующий контент. В приведенном ниже примере добавляется (скрытая) закладка вокруг заголовка раздела, а затем добавляется перекрестная ссылка на эту закладку в заголовке (если вам нужны какие-либо конкретные заголовки для первой/четной/нечетной страницы, которые вам необходимо соответствующим образом настроить):
Sub AddSectionTitlesToHeader()
Dim oSection As Section
For Each oSection In ActiveDocument.Sections
Dim oRangeTitle As Range
Dim oRangeHeader As Range
Dim bmName As String
' make sure to use a different header for each section
oSection.PageSetup.DifferentFirstPageHeaderFooter = False
oSection.PageSetup.OddAndEvenPagesHeaderFooter = False
oSection.Headers(wdHeaderFooterPrimary).LinkToPrevious = False
' add a bookmark around the section title
' (this assumes the title is in the section's
' first paragraph, adjust accordingly)
Set oRangeTitle = oSection.Range.Paragraphs.First.Range
bmName = "_bmSectionTitle" & oSection.Index
oRangeTitle.Bookmarks.Add bmName, oRangeTitle
' add a cross reference in the header
Set oRangeHeader = oSection.Headers(wdHeaderFooterPrimary).Range
oRangeHeader.InsertCrossReference _
ReferenceType:=WdReferenceType.wdRefTypeBookmark, _
ReferenceKind:=WdReferenceKind.wdContentText, _
ReferenceItem:=bmName
Next
End Sub
Смежные вопросы
- 1. Извлечь заголовки из документа MS Word в Python
- 2. LuaCOM Заголовок документа Word
- 3. Рендеринг XHTML как документ MS Word - Заголовки
- 4. Открыть MS Word в режиме сравнения программно
- 5. Как добавить заголовки таблиц в MS Word с помощью макросов?
- 6. MS Word 2010 - Как программно очистить «Восстановление документа»
- 7. Как проверить программно, изменились ли какие-либо свойства документа в документе MS Word 2007?
- 8. Программно изменить свойство документа Word
- 9. Как скрыть заголовки моих разделов UITableViews программно?
- 10. Программно создайте файл MS Word без установки MS Word
- 11. MS Word распознает заголовок/шрифт и т. Д.?
- 12. Заполнение MS Word Merge Записи полей Программно
- 13. MS Word Персональные шаблоны
- 14. Программно открывая xml-файл в MS Word
- 15. Сохранение документа MS Word с последовательной нумерацией
- 16. Печать документа OOXML без установленного MS Word
- 17. Обновление документа MS Word с VB.NET
- 18. Удалить текстовое поле документа MS Word
- 19. MS Word VBA: Получить прилагаемый шаблон документа
- 20. Как получить заголовки документов Word в excel
- 21. Определите, закончил ли MS Word сохранение документа
- 22. Анализ документа MS Word для XMLфрагментов - C#
- 23. Как программно изменить макет документа Word 2010?
- 24. Как добавить закладку в заголовок документа документа программно?
- 25. Как центрировать заголовки разделов UITableView
- 26. UITableView заголовки разделов UI изменился
- 27. UITableView и трогательные заголовки разделов
- 28. Visual Studio Tools for Office (VSTO) + шаблон документа MS Word
- 29. Лучший способ обработки документа Word
- 30. Создание гиперссылки из Excel FlowChart в MS Word Заголовок