![]() |
|
#1
|
||||
|
||||
|
I have to do some 20-30 page documents regularly, and they look like this (Norwegian text, but the main thing is "nøkkelord", which means "keyword" and is the same every time, plus a number (which is not a sequence): Code:
nøkkelord 3 Det var en gange en nisse som måtte tisse Han hoppet over et gjerde, der fant han ei pære nøkkelord 2 den delte han i fem, én, to, tre, fire, fem Code:
Det var en gange en nisse som måtte tisse nøkkelord 3 Han hoppet over et gjerde, der fant han ei pære den delte han i fem, én, to, tre, fire, fem nøkkelord 2 My boss is to cheap to get us anything newer than Office 2007, and it works for what we need it to do, so that's the format for it. ![]() I have searched the web and this forum for hours this weekend, but I haven't found anything that works this way. Could somebody please help me out? |
|
#2
|
|||
|
|||
|
Hi! It's quite simple:
Code:
Sub Move_Two_Lines_Down()
Dim Rng As range
Set Rng = selection.range
Application.ScreenUpdating = False
Do
With Rng.Find
.ClearFormatting
.Replacement.ClearFormatting
.text = "Keywords ^#"
.Forward = True
.Format = True
.Wrap = wdFindStop
.MatchWildcards = False
.Execute
If Rng.End > selection.range.End Then Exit Do
If .found Then
Rng.Paragraphs(1).range.Cut
Rng.Move unit:=wdParagraph, count:=2
Rng.Paste
Rng.Collapse wdCollapseEnd
Else: Exit Do
End If
End With
Loop
Application.ScreenUpdating = True
Set Rng = Nothing
End Sub
|
|
#3
|
||||
|
||||
|
Thank you very much, vivka! I guess it's like almost everything else in the world, it's easy if you know it!
I could for some reason not get ActiveDocument.range to work, but I added a Selection.WholeStory above the sub, and that worked. It's actually a part of a larger macro, but that didn't give me any problems, using WordBasic.StartOfDocument as the line under this part of the macro made it go without a hich.
|
|
#4
|
|||
|
|||
|
It seems that Vivka's code misses the last instance of your keyword. I also don't understand the reason for the If .found condition. You might try:
Code:
Sub Move_Two_Lines_Down()
Dim oRng As Range
Set oRng = ActiveDocument.Range
Application.ScreenUpdating = False
With oRng.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "Keywords ^#"
.Forward = True
.Format = True
.Wrap = wdFindStop
While .Execute
oRng.Paragraphs(1).Range.Cut
oRng.Move unit:=wdParagraph, Count:=2
oRng.Paste
If oRng.End = ActiveDocument.Range.End - 1 Then
oRng.InsertBefore vbCr
oRng.Paragraphs.Last.Next.Range.Delete
End If
oRng.Collapse wdCollapseEnd
Wend
End With
Application.ScreenUpdating = True
lblExit:
Set oRng = Nothing
Exit Sub
End Sub
|
|
#5
|
||||
|
||||
|
Thank you! I will try that!
Edit: It works too! |
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| 1st line of 4-line poem centrally aligned; how to get lines 2-4 to start at same location on page | Swarup | Word | 6 | 09-16-2022 11:07 AM |
I need a macro to move dangling words to a new line please
|
iNeedaMacroPlease | Word VBA | 2 | 11-27-2020 11:34 AM |
| How to move a line to another line that starts with a chain selected in the 1st one? | gloub | Word VBA | 24 | 03-19-2019 03:12 PM |
| Lock line so text does not move to next line | saundrals | Word | 2 | 06-19-2014 03:59 PM |
| Lines move between close and open | jsmath22 | PowerPoint | 0 | 12-15-2010 07:44 AM |