If your content controls had been inserted in a consistent order, you could have used something like:
Sub Demo()
Application.ScreenUpdating = False
Dim i As Long, StrOut As String, wdDoc As Document
StrOut = "Procedure" & vbTab & "Findings" & vbTab & "Priority" & vbTab & "Recommendation" & vbCr
With ActiveDocument
For i = 1 To .SelectContentControlsByTitle("Priority").Count
If .SelectContentControlsByTitle("Priority")(i).Range.Text <> "N/A" Then
StrOut = StrOut & .SelectContentControlsByTitle("Procedure")(i).Range.Text & vbTab
StrOut = StrOut & .SelectContentControlsByTitle("Finding")(i).Range.Text & vbTab
StrOut = StrOut & .SelectContentControlsByTitle("Priority")(i).Range.Text & vbTab
StrOut = StrOut & .SelectContentControlsByTitle("Reccomendation")(i).Range.Text & vbCr
End If
Next
End With
Set wdDoc = Documents.Add
With wdDoc.Range
.Text = StrOut
.ConvertToTable
With .Tables(1)
.Rows(1).HeadingFormat = True
.Rows(1).Range.Font.Bold = True
.Sort ExcludeHeader:=True, FieldNumber:=3, SortFieldType:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending
End With
End With
Application.ScreenUpdating = True
End Sub
As it is, however, your first "Procedure" is actually 'Test 3', the first "Finding" relates to procedure 4, and the first "Reccomendation" relates to procedure 2, etc. ...