Sort from top to bottom in a multi-column table

D

Dugie

Hi,

Is it possible to alphabetically sort text in a Word table, from top to bottom, and continue the sort to the adjacent columns? I don't want a right to left (across rows) sort.

Like this:
apple limes
bacon melons
butter oranges
herring steak

Not this:
apple bacon
butter herring
limes melons
oranges steak

Thank you!

Dugie
 
L

Luc

Dugie,
You could put your list in text columns which flow frow top to bottom. Then
sort the paragraphs accordingly. You can sort paragraphs via Table - sort -
sort by paragraph.

--
Luc Sanders
(MVP - PowerPoint)
"Dugie" <d_fren@NOSPAMhotmail.com> schreef in bericht
Hi,

Is it possible to alphabetically sort text in a Word table, from top to
bottom, and continue the sort to the adjacent columns? I don't want a right
to left (across rows) sort.

Like this:
apple limes
bacon melons
butter oranges
herring steak

Not this:
apple bacon
butter herring
limes melons
oranges steak

Thank you!

Dugie
 
G

Greg Maxey

Try running this macro on the table:

Sub DownThenAccrossTableSorter()
Dim i As Long
Dim j As Long
Dim k As Long
Dim oCell As Cell
Dim oTmpTable As Table
Dim oRng As Word.Range
i = Selection.Tables(1).Range.Cells.Count
'Insert a temporary 1 column/multi-row table at the end of the document
With ActiveDocument.Paragraphs.Last
.Range.Paragraphs.Add
.Range.Tables.Add .Range, i, 1
End With
'Define this table
Set oTmpTable =
ActiveDocument.Tables(ActiveDocument.Range.Tables.Count)
'Fill oTmpTable with contents of table to be sorted
For Each oCell In Selection.Tables(1).Range.Cells
With oTmpTable
.Cell(i, 1).Range.Text = Left(oCell.Range.Text,
Len(oCell.Range.Text) - 2)
End With
i = i - 1
Next
'Sort
oTmpTable.Sort
'Redefine selected table contents based on sort
With Selection.Tables(1)
For i = 1 To .Range.Columns.Count
For j = 1 To .Range.Rows.Count
k = k + 1
Set oRng = oTmpTable.Cell(k, 1).Range
.Cell(j, i).Range.Text = Left(oRng.Text, Len(oRng.Text) - 2)
Next j
Next i
End With
'Clean up.
oTmpTable.Delete
Set oRng = Nothing
Set oTmpTable = Nothing
Msgbox "Can I stop in for dinner?"
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top