Possible to reverse line order?

S

sdlfkj

I have lines of numbers that I need to reverse.

So instead of
3rd line
2nd line
1st line

I need it to read
1st line
2nd line
3rd line

I just want to highlight the 3 lines and click something to reverse the order instead of cutting and pasting hundreds of times. Any
suggestions?
 
G

Greg Maxey

I suspect that there is a far superior method, but I cobbled the following
together that seems to work. Select the three lines and run this macro:

Sub ReverseLineOrder()
Dim myRng As Range
Dim tmpString1 As String
Dim tmpString2 As String
Dim tmpString3 As String

Set myRng = Selection.Range
tmpString1 = myRng.Paragraphs(3).Range
tmpString2 = myRng.Paragraphs(2).Range
tmpString3 = myRng.Paragraphs(1).Range
myRng.Delete
myRng.Text = tmpString1 & tmpString2 & tmpString3
End Sub
 
G

Greg Maxey

OK maybe this is a little better. Will do anynumber of lines provided each
line is an individual paragraph.

Sub ReverseLineOrder()
Dim myRng As Range
Dim tmpString
Dim i As Integer

Set myRng = Selection.Range
For i = myRng.Paragraphs.Count To 1 Step -1
tmpString = tmpString & myRng.Paragraphs(i).Range
Next i
myRng.Text = tmpString
End Sub
 
G

Greg Maxey

A little more general and corrects the addition of a blank paragraph if
myRng.end is the same as activedocument.end

Sub ReverseParagraphOrder()
'Created 04/20/2005 by Greg Maxey
'Reverses the order of a group of selected paragraphs
Dim myRng As Range
Dim tmpString
Dim i As Integer

Set myRng = Selection.Range
For i = myRng.Paragraphs.Count To 1 Step -1
tmpString = tmpString & myRng.Paragraphs(i).Range
Next i
If myRng.End = ActiveDocument.Range.End Then
myRng.Text = Left(tmpString, Len(tmpString) - 1)
Else
myRng.Text = tmpString
End If
End Sub
 
L

Luc

Greg,
Just taking some time to thank you for your valuable contibutions in the
newsgroup. This is a typical example of a time and money saver.
This is also why we keep coming back to this newsgroup to find answers you
will not find easily somewhere else.
Thanks again Greg!
Luc
 

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