25. juni 2007 - 13:02Der er
5 kommentarer og 1 løsning
VBA Word: Find tal og slet
Hej Eksperter Har puslet lidt med den her, men har glemt for meget af VBA til at løse den.
Jeg har et word dokument, indeholdende 34 sider med manuel talnummerering, efterfulgt af en talsekvens og noget tekst.
Jeg ønsker, at slette alle de manuelle talnummereringer og indsætte words egen autonummerering i stedet, via en makro, så jeg slipper for selv at skulle sidde og slette hver enkelt nummerering og definere autonummerering.
En typisk sekvens kunne se således ud:
___TYPISK SEKVENS___
1 00:00:05,826 --> 00:00:07,987 TEKST
2 00:00:59,446 --> 00:01:01,175 TEKST 3 00:01:04,017 --> 00:01:05,985 TEKST
4 00:01:09,623 --> 00:01:14,083 TEKST TEKST
5 00:01:14,828 --> 00:01:19,697 TEKST TEKST TEKST
___TYPISK SEKVENS SLUT___
Tallene 1,2,3,4,5 ... skal altså slettes og erstattes af autonummerering.
Jeg har lavet følgende kode, der desværre ikke tager højde for om det er tekst, eller talsekvenserne (00:00:01,00). Så den sletter bare derud af.
Sub Slet_tal() Again: Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Select Case Selection.Text Case Is > 1 'MsgBox "Ikke tom" Number = Number + 1 Case Else 'MsgBox "Tom" Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.MoveDown Unit:=wdLine, Count:=1 GoTo Again End Select
Står selve nummereringen (altså dem, du skal have fjernet) i en linje for sig selv? Og har du gjort dig nogle tanker om, hvordan du vil have autonummereringen til at virke?
Jeg har, i mellemtiden konstrueret denne kode, der virker ok:
___ kode ____
Sub Slet_tal() (variabler)
<!-- fortsæt indtil et tal som brugeren har valgt er nået -->
Do Until Number = CountTo Selection.EndKey Unit:=wdLine, Extend:=wdExtend
<!-- Tester om teksten er et tal (tekst returnerer i 0 -->
Select Case Val(Selection.Text) Case Is >= 1 Case Else GoTo Again End Select
<!-- Sammenligner det aktuelle tal med det foregående; lig med, mindre end eller større end sidste tal + 1.
Select Case Val(Selection.Text) Case Is = Number Case Is < Number Case Is > Number + 1 Case Else Taeller = Taeller + 1 Number = Number + 1 Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Text = Taeller End Select
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.