У меня есть макрос в Word, который ищет документ, а затем делает что-то, когда он найден.Какой тип поля мой выбор?
Я хотел бы проверить, если найденный текст в оглавлении, но это, кажется, не нравится, как у меня есть код:
Sub test()
Dim myDoc As Word.Document
Dim oRng As Word.Range, rng As Word.Range, rngXE As Word.Range
Dim addDefinition$, editedDefinition$ ',findText$
Dim rngEdited
Dim bFound As Boolean
Dim findText() As Variant
Dim y&
Set myDoc = ActiveDocument
bFound = True
Call Clear_Index
findText = Array("whatever", "whatever:", "Whatever:")
For y = LBound(findText) To UBound(findText)
'Loop through the document
Set oRng = myDoc.Content
Set rngXE = oRng.Duplicate
With oRng.Find
.ClearFormatting
.ClearAllFuzzyOptions
.Text = findText(y)
.MatchCase = False
.Wrap = wdFindStop
End With 'orng.find
Do While bFound
bFound = oRng.Find.Execute
If bFound Then
Set rngXE = oRng.Paragraphs(1).Range.Duplicate
rngXE.Select
'
' THIS IS WHERE I NEED HELP :(
If rngXE.Fields.Type = wdFieldTOC Then ' This doesn't work.
MsgBox (" In a TOC!")
End If
End If
End Sub
Он бросает
Compile Error: Method or data member not found
я видел петли
For each fld in myDoc.Fields
If fld.Type = wbFieldTOC Then
'Do something
end if
next fld
Какую работу - я просто с трудом понять, чтобы найти поле конкретного текста.
Это замечательно! Спасибо за это, я пошел с 'If rngXE.InRange (myDoc.TablesOfContents (1) .Range) = False Затем ...' – BruceWayne