Avatar billede Claus Mester
21. juni 2002 - 12:57 Der er 2 kommentarer og
1 løsning

VBA Word: Find alle med fed og indsæt i combo ..

Hej

Jeg har efterhånden prøvet flere forskellige metoder, for at opnå ovenstående funktion - uden større held.

Er der nogen der har et bud på, hvordan koden kunne se ud?

Situationen er den, at jeg har et dokument(word). I dette dokument står en masse oplysninger, men KUN de som er markeret med FED skal kopieres og indsættes i en comboboks, placeret på en userform.
Avatar billede martin_moth Mester
21. juni 2002 - 13:25 #1
Her er måske lidt at starte med - bare til inspiration og ikke testet:

Selection.HomeKey                'Stiller cursor i start af dokument
Selection.Find.ClearFormatting
Selection.Find.Font.Bold = True  'Søgekriterium = Fed
With Selection.Find
    .Text = ""              'Søger ikke efter noget bestemt tekst
    .Forward = True        'Søger fremad
    .Format = True          'Søger efter bestemt format (fed)
    .MatchWholeWord = True  'Finder KUN hele ord
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With

Do Until Selection.Find.Found = False 'Loop til søgekriterium ikke opfyldt
  Selection.Find.Execute  'Udfører selve søgningen
Loop

Som sagt  - blot til inspiration, til der kommer noget bedre ;o)
Avatar billede Claus Mester
21. juni 2002 - 15:26 #2
Funker ikke. Jeg prøvede at ændre din kode til:
Do Until Selection.Find.Found = False 'Loop til søgekriterium ikke opfyldt
        Selection.Find.ClearFormatting
        Selection.Find.Font.Bold = True  'Søgekriterium = Fed
        With Selection.Find
        .Text = ""              'Søger ikke efter noget bestemt tekst
        .Replacement.Text = ""
        .Wrap = wdFindContinue
        .Forward = True        'Søger fremad
        .Format = True          'Søger efter bestemt format (fed)
        .MatchWholeWord = True  'Finder KUN hele ord
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        End With
        Selection.Find.Execute  'Udfører selve søgningen
        If Selection.Find.Found = True Then
            MsgBox Selection.Text
        Else
            MsgBox "Intet fundet"
        End If
    Loop
Men lige meget hjalp det. Andre gode forslag?
Avatar billede Claus Mester
21. juni 2002 - 15:50 #3
Med nedenstående kode, løste jeg selv problemet:

Selection.HomeKey

With Selection.Find
    .ClearFormatting
    .Font.Bold = True
    Do While .Execute(FindText:="", Forward:=True, _
            Format:=True) = True
        With .Parent
            MsgBox Selection.Text
        End With
    Loop
End With

Tak for inspirationen.

nicolaus
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
Kurser inden for grundlæggende programmering

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