Avatar billede firstchoice Nybegynder
21. oktober 2003 - 14:50 Der er 3 kommentarer og
1 løsning

Macro til at ændre formateringen for et ord

Jeg har en macro der udfra en 2 kolonners tabel gennemløber et worddokument, og søger udfra teksten i 1. kolonne (søg)og erstatter med teksten fra 2. kolonne (erstat).
Nu ønsker jeg macroen udviddet således at jeg kan formaterer teksten i "erstat" kolonnen, f.eks. med Subscript, kursiv og farve.
F.eks søger jeg ordet H2O og ønsker, at erstatte det med H2O, men hvor "2" er Subscripted og fontfarven for hele ordet er ændret til rød.
Avatar billede rvm Nybegynder
21. oktober 2003 - 15:26 #1
Hvordan vil du markere ordet? Du nævner noget med Subscript - hvad er det ?
Avatar billede firstchoice Nybegynder
21. oktober 2003 - 16:07 #2
Jeg vil i kolonne 2 (erstat) formaterer ordet som jeg gerne vil have det til at fremstå når det indsættes som erstatning.
Subscipt er sænket skrift (jeg har den engelske version af word2000)
Avatar billede rvm Nybegynder
22. oktober 2003 - 09:58 #3
Her er en ændret kode som skulle gøre det *S* Du skal bare formatere ordene i kolonne 2 som du øsnker:

Sub Søg()
Dim Antalrækker As Integer
'Gemmer det aktive dokuments navn i en variabel, så det kan aktiveres løbende
FindDok = ActiveDocument.Name

'Åbner en dialogboks, så du kan pege på ordlistefilen
dlgAnswer = Dialogs(wdDialogFileOpen).Show

Application.ScreenUpdating = False

'Hvis dlgAnswer = -1 er der et åbent dokument
If (dlgAnswer = -1) Then
    'Gemmer det aktive dokuments navn i en variabel, så det kan aktiveres løbende
    ErstatDok = ActiveDocument.Name
   
    'Vælger hele dokumentets, så jeg kan få fat i tabellen
    Selection.WholeStory
    Selection.Tables(1).Select
   
    'Tæller rækker til loopet
    Antalrækker = Selection.Information(wdEndOfRangeRowNumber)
   
    'Sætter markøren i 1. celle med indholdet markeret
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.SelectCell
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
   
    For n = 1 To Antalrækker
        Find = Selection.Text
       
        Selection.MoveRight Unit:=wdCell
        Selection.Copy
        Erstat = Selection.Text

        Documents(FindDok).Activate
       
        Set myRange = ActiveDocument.Content
       
        For i = 1 To ActiveDocument.Words.Count
            myRange.Find.Execute FindText:=Find, Forward:=True
            If myRange.Find.Found Then
                myRange.Select
                Selection.Paste
            End If
        Next i

        Documents(ErstatDok).Activate
        Selection.MoveRight Unit:=wdCell
    Next
End If

Documents(ErstatDok).Close False

Application.ScreenUpdating = True

End Sub
Avatar billede firstchoice Nybegynder
30. oktober 2003 - 21:30 #4
tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Tag et kursus i Word og øg effektiviteten

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester