bottom
Great WordTips!
         
Your e-mail address is safe!
Close Note

Tips.Net > WordTips Home > Sorting Information > Odd Sorting

Odd Sorting

Summary: Sorting information is a common task in Word. Sometimes, however, it is difficult to determine exactly how to sort certain types of information. This tip shows how to use a macro to sort a series of names that may have suffixes associated with them. (This tip works with Microsoft Word 97, Word 2000, Word 2002, and Word 2003.)

A WordTips reader wrote asking how to use Word to sort some data which had been collected over the course of years. The data is for a legal firm, so the names could have suffixes, such as the following:

John Davis, Esq.

The question was how to sort this correctly, as the reader was able to do under WordPerfect. The best long-term solution, of course, is to convert the data to a database format, such as Access or even to a spreadsheet, such as Excel. Short of that, however, the following VBA macro will allow the list to be sorted correctly:

Sub CustomSort()
    Set myrange = Selection.Range
    For Each p In myrange.Paragraphs
        p.Range.Select
        If InStr(1, p, ",") > 0 Then
            CharCount = InStr(1, p, ",") - 1
            Selection.StartOf
            Selection.MoveRight Unit:=wdCharacter, _
              Count:=CharCount
        Else
            Selection.EndOf
            Selection.MoveLeft Unit:=wdCharacter, _
              Count:=1
        End If
        Selection.MoveLeft Unit:=wdWord, Count:=1
        Selection.MoveLeft Unit:=wdCharacter, _
          Count:=1, Extend:=wdExtend
        Selection.TypeText Text:=vbTab
    Next p
    myrange.Select
    Selection.Sort ExcludeHeader:=False, _
      FieldNumber:="Field 2", _
      SortFieldType:=wdSortFieldAlphanumeric, _
      SortOrder:=wdSortOrderAscending, _
      FieldNumber2:="Field 1", _
      SortFieldType2:=wdSortFieldAlphanumeric, _
      SortOrder2:=wdSortOrderAscending, _
      FieldNumber3:="", _
      SortFieldType3:=wdSortFieldAlphanumeric, _
      SortOrder3:=wdSortOrderAscending, _
      Separator:=wdSortSeparateByTabs, _
      SortColumn:=False, _
      CaseSensitive:=False, _
      LanguageID:=wdLanguageNone
End Sub

To use this macro, simply select the paragraphs you want to sort, and then run the macro. It searches for a comma in each paragraph, and then finds the word just before the comma. It replaces the space (or tab) just before that word with a tab. Thus, each paragraph is separated into two fields: the first and possibly middle name is the first field, while the last name and possible suffix is the second field. The selection is then sorted according to the second field.

Tip #1207 applies to Microsoft Word versions: 97 | 2000 | 2002 | 2003


More Power! Expand your skills and make Word really sing! It's all possible with macros. The best resource anywhere for macros is WordTips: The Macros. Check it out today!

Helpful Links

Ask a Word Question
Make a Comment

Tips.Net Home
Vital News Home

WordTips FAQ
WordTips Premium

Learn Access Now

Beauty Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Money Tips
Pet Tips
Word2007 Tips
WordTips

Advertise on the
WordTips Site

 

Great Info!

Get tips like this every week in WordTips, a free productivity newsletter. Enter your e-mail address and click "Subscribe."
     
(Your e-mail address will never be shared with anyone, ever.)