You don't need to split the table to do this.After sorting on A,B,X,etc.
just select the A rows and sort again on the second column; then select the
B rows and sort those, etc.
> I've just done something rather like this, as it happens. What I would
> suggest would be first sorting the table into A and B, then temporarily
[quoted text clipped - 21 lines]
>>
>> AL
Ah, I'm not sure I realized you could sort part of a table that way, but it
makes sense.

Signature
Suzanne S. Barnhill
Microsoft MVP (Word)
Words into Type
Fairhope, Alabama USA
> You don't need to split the table to do this.After sorting on A,B,X,etc.
> just select the A rows and sort again on the second column; then select
[quoted text clipped - 25 lines]
>>>
>>> AL
Yes, I was able to do that also. But I would like to create a macro
that will do that. How can I create a macro that will do that?
Thanks
On Jan 25, 2:38 am, "Tony Jollans" <My forename at my surname dot com>
wrote:
> You don't need to split the table to do this.After sorting on A,B,X,etc.
> just select the A rows and sort again on the second column; then select the
[quoted text clipped - 35 lines]
>
> >> AL
Tony Jollans - 26 Jan 2008 11:45 GMT
Here is some code that should do what you want:
Sub MultiSort()
Dim TableHasHeadings As Boolean
TableHasHeadings = False ' Set to True if you do have headings
Dim RowNo1 As Long, RowNo2 As Long
With ActiveDocument.Tables(1)
.Range.Sort ExcludeHeader:=TableHasHeadings, _
Fieldnumber:="Column 1"
RowNo1 = 1 - TableHasHeadings
Do While RowNo1 <= .Rows.Count
RowNo2 = RowNo1 + 1
Do While RowNo2 <= .Rows.Count
If .Cell(RowNo1, 1).Range _
<> .Cell(RowNo2, 1).Range Then Exit Do
RowNo2 = RowNo2 + 1
Loop
RowNo2 = RowNo2 - 1
If RowNo2 > RowNo1 Then
Select Case ActiveDocument.Range( _
.Cell(RowNo1, 1).Range.Start, _
.Cell(RowNo1, 1).Range.End - 1)
Case "A"
ActiveDocument.Range(.Rows(RowNo1).Range.Start, _
.Rows(RowNo2).Range.End) _
.Sort Fieldnumber:="Column 2", _
Fieldnumber2:="Column 3"
Case "B"
ActiveDocument.Range(.Rows(RowNo1).Range.Start, _
.Rows(RowNo2).Range.End) _
.Sort Fieldnumber:="Column 3"
End Select
End If
RowNo1 = RowNo2 + 1
Loop
End With
End Sub
If you don't know what to do with this see
http://www.gmayor.com/installing_macro.htm
You may have to change it slightly, depending on:
(a) whether you have column headings in your table - see the line near the
beginning with the comment
(b) I have assumed "Team" is in column 1 of your table - if not you will
have to change "Column !" in the first Sort to "Column whatever". Yopu will
also have to change all the references ".Cell(RowNo,1)" to ".Cell(RowNo,n)"
where n is the actual column number (and RowNo may be either RowNo1 or
RowNo2)
(c) I have also assumed that "Grade" is in column 2 and "Name" is in column
3. If not, you will have to change the column numbers in the two Sorts at
the end
(d) If you want to do something different with team "X" (or any other) you
will have to add an extra "Case" and another Sort, as per the existing two.
If you need any more help, do come back.

Signature
Enjoy,
Tony
> Yes, I was able to do that also. But I would like to create a macro
> that will do that. How can I create a macro that will do that?
[quoted text clipped - 44 lines]
>>
>> >> AL