Hello,
I am currently trying to iterate through a massive word document with many fields, and to delete fields whose code don't match a specified format, and then to extract a number from each of the remaining fields to check against another file. My problem is that I understand with Selection.Find, you can access the text using Selection.Text. When I use field.code.find, I cannot figure out how to save the matching text to a variable for further work.
I have excluded the previous portions of the code for privacy reasons, but the code works entirely, I just don't know what to change the "tenum =" line to make this work.
Code:
'first let's open the report
wrdApp.Documents.Open (reportstr)
Set analystreport = wrdApp.Documents(reportfile)
analystname = "D"
analystreport.SaveAs2 Filename:=reportpath & analystname
Set anactiwindow = analystreport.ActiveWindow
'Now let's delete the pages from the end of the expenditures to the end of the book
pageCount = analystreport.ComputeStatistics(wdStatisticPages)
anactiwindow.Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=421 ''''''insert page after the last expenditure to delete all toward the end of the document
Set rgepages = anactiwindow.Selection.Range
anactiwindow.Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=pageCount
rgepages.End = anactiwindow.Selection.Bookmarks("\Page").Range.End
rgepages.Delete
anactiwindow.Selection.TypeBackspace
anactiwindow.Selection.Delete Unit:=wdCharacter, Count:=1
'Now let's get rid of beginning of book up to first expenditure
anactiwindow.Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=1
Set rgepages = anactiwindow.Selection.Range
anactiwindow.Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=24 ''''''insert page before the first expenditure to delete beginning of book
rgepages.End = anactiwindow.Selection.Bookmarks("\Page").Range.End
rgepages.Delete
'Now we will loop through the fields. If the field is a chapter, delete it, if the field is an expenditure we need to check to see if it is one of the expenditures for this analyst and keep it
For Each wrdfield In analystreport.Fields
wrdfield.Select
With wrdfield.Code.Find
.MatchWildcards = True
.text = "[0-9]{1,2}.[0-9]{3}"
.Execute
If .Found = True Then
tenum = wrdfield.Code.text
Else
wrdfield.Delete
End If
End With
Next