Possible to reverse line order?

  • Thread starter Thread starter sdlfkj
  • Start date Start date
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?
 
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
 
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
 
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
 
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
 
Back
Top