16. februar 2012 - 16:50Der er
4 kommentarer og 1 løsning
Optimering af makro til at slette afsnit under et tekstfelt
Hej
Jeg har fået nedenstående kode til at slette et afsnit på baggrund af et bestemt resultat i et tekstfelt. Den skal dog finjusteres, da koden samtidig sletter mit tekstfeltet, og det er ikke meningen
Tekstfeltet skal beholdes, så det kun er afsnittene nedenunder, der slettes. Hvad skal der ændres?
Sub SletAfsnit()
Dim oField As FormField Dim oDoc As Document Dim oRange As Range
Set oDoc = ActiveDocument For Each oField In oDoc.Range.FormFields If oField.Result = "Der er ikke givet dispensation." Then Set oRange = oField.Range.Paragraphs(1).Range 'Extend range to include 6 next paragraphs If oRange.MoveEnd(UNIT:=wdParagraph, Count:=4) <> 0 Then oRange.Delete Else 'MoveEnd returns 0 if less than 4 paragraphs are found after paragraph with field 'Insert code here if something is going to happen in case less than 2 paragraphs were found End If End If Next oField
Fint, så virker det, så du må gerne sende et svar.
Er det i øvrigt meget besværligt at omskrive makroen, da jeg i dette tilfælde kun har en FormField, som hedder "Der er ikke givet dispensation." Det irriterer mig nemlig, at koden gennemsøger hele dokumentet, selvom der kun er den ene FormField, som hedder "Der er ikke givet dispensation."
Under alle omstændigheder tak for hjælpen. Du er virkelig en "haj" på dit område.
Velbekomme. Du kan indsætte: Exit For lige efter linjen oRange.Delete
Så bliver der ikke søgt mere, da det får koden til at hoppe ud af løkken. Det princip kan du generelt benytte til at stoppe, når du har opnået det, du ville.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.