Как выполнить итерацию по каждому имени заголовка в (оглавлении) и извлечь связанный с ним контент данных (как текстовый, так и нетекстовый) из текстового документа с использованием VBA?
Например, рассмотрите прикрепленное изображение, как я смогу извлечь содержимое данных (стрелки указывают на требуемое 3 содержимого данных), соответствующее определенному названию заголовка "4.1.7.3 Описание ролей"?
На прилагаемом рисунке список заголовков (оглавление) отображается на левой панели, когда мы щелкаем по любому конкретному элементу toc, тогда соответствующие данные отображаются на правой панели / разделе.
В настоящее время я могу получить доступ к содержимому каждого заголовка с помощью приведенного ниже кода.
Пожалуйста, объясните мне, как извлечь связанный с ними контент данных (как текстовый, так и нетекстовый) с помощью кода VBA.
Sub Main()
Dim strFile As String
Dim oWord As Word.Application
Dim oWdoc As Word.Document
Dim oPar As Word.Paragraph
Dim rng As Word.Range
strFile = "C:\Users\SQVA\Desktop\My_Work\MyTest3.docx"
'Set oWord = CreateObject("Word.Application")
Set oWord = New Word.Application
Set oWdoc = oWord.Documents.Open(strFile)
Call Get_Heading_Name(oWord, oWdoc, strFile, rng)
Call Close_Word(oWord, oWdoc)
End Sub
Sub Get_Heading_Name(oWord As Word.Application, oWdoc As Word.Document, strFile As String, rng As Word.Range)
oWord.Visible = True
Dim astrHeadings As Variant
Dim strText As String
Dim intItem As Integer
Set rng = oWdoc.Content
astrHeadings = _
oWdoc.GetCrossReferenceItems(wdRefTypeHeading)
For intItem = LBound(astrHeadings) To UBound(astrHeadings)
strText = Trim$(astrHeadings(intItem))
Debug.Print CStr(strText)
Next intItem
End Sub
Sub Close_Word(oWord As Word.Application, oWdoc As Word.Document)
oWdoc.Close SaveChanges:=wdDoNotSaveChanges
oWord.Quit
Set oWdoc = Nothing
Set oWord = Nothing
End Sub