Avatar billede Morten Nybegynder
28. januar 2004 - 13:15 Der er 11 kommentarer og
1 løsning

hente fra tekstfil med VBA

Hej

Jeg skal lige hjælpes igang

Jeg har i word behov for en funktion som kan åbne en tekstfil finde følgende i en tekst streng

<question answer="0" id="0" />

Der findes flere af disse strenge og det der adskiller dem er id numret...

Når jeg fundet id'en skal jeg udfra id og question answer hente en tekststreng andensted i min VBA kode...

Herefter skal proceduren så fortsætte til næste id hvis der er flere...

Hjælp...
Avatar billede Morten Nybegynder
28. januar 2004 - 13:16 #1
bruger word 2000 og 2002 - så skal være kompatibel med begge (og gerne 97 hvis det er muligt)
Avatar billede rvm Nybegynder
28. januar 2004 - 14:13 #2
Arbejder på sagen *S*
Avatar billede Morten Nybegynder
28. januar 2004 - 14:32 #3
øhh - og det er jo altså en xml fil hvis det er nogen hjælp - leder også selv intenst men kan kun finde en masse om den anden vej altså fra word til XML... hmmm
Avatar billede rvm Nybegynder
28. januar 2004 - 14:47 #4
Det var ærgeligt - nu har jeg lige løst det til Wprd.doc - held og lykke *S*

Du får lige koden alligevel - det kan være andre kan bruge den *S*

Sub Find()


For Each wor In ActiveDocument.Words

    Set myrange = ActiveDocument.Content
    myrange.Find.Execute FindText:="question answer=", Forward:=True
    If myrange.Find.Found = True Then
        myrange.Text = "Fundet"
        myrange.Select
'        Finder Svar
        Do
            Selection.MoveRight Unit:=wdCharacter, Count:=1
            Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend

        Loop Until IsNumeric(Selection.Range) = True

        Selection.MoveLeft Unit:=wdCharacter, Count:=1
        ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:="Start"
'        Selection.MoveRight Unit:=wdCharacter, Count:=1
       
        Do
            Selection.MoveRight Unit:=wdCharacter, Count:=1
            Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
        Loop Until IsNumeric(Selection.Range) = False
        Selection.MoveLeft Unit:=wdCharacter, Count:=1
        ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:="Slut"

        'Marker området mellem de 2 bogmærker
        Dim doc As Document
        Dim rngDoc As Range

        Set doc = ActiveDocument

        Set rngDoc = doc.Range(Start:=doc.Bookmarks("Start").Range.Start, _
        End:=doc.Bookmarks("Slut").Range.Start)

        rngDoc.Select

        svar = Selection.Range

        'Finder ID

        'Finder svar
        Do
            Selection.MoveRight Unit:=wdCharacter, Count:=1
            Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
        Loop Until IsNumeric(Selection.Range) = True

        Selection.MoveLeft Unit:=wdCharacter, Count:=1
        ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:="Start"

        Do
            Selection.MoveRight Unit:=wdCharacter, Count:=1
            Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
        Loop Until IsNumeric(Selection.Range) = False
        ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:="Slut"

        Set doc = ActiveDocument

        Set rngDoc = doc.Range(Start:=doc.Bookmarks("Start").Range.Start, _
        End:=doc.Bookmarks("Slut").Range.Start)

        rngDoc.Select

        ID = Selection.Range
       
        'Her indsætter du din kode og bruger svar og ID som du har lyst til *S*
       
    End If
Next

End Sub
Avatar billede Morten Nybegynder
28. januar 2004 - 14:55 #5
nej vent - det eneste der "mangler" i din (måske har jeg ikke forklaret godt nok) er at det ikke er et åbent word dokument men en tekstfil - altså jeg skal tilgå filen og så gør noget al'a det du har fat i - kan du hjælpe med det?
Avatar billede rvm Nybegynder
28. januar 2004 - 15:04 #6
Kan du ikke "bare" åbne filen via Word og køre koden?
Avatar billede Morten Nybegynder
28. januar 2004 - 15:10 #7
tjoooee egentlig - prøver lige
Avatar billede Morten Nybegynder
28. januar 2004 - 15:29 #8
Hmmm... for det første så overskriver den question answer (har fjernet myrange.text=fundet)

Dernæste når jeg debugger på id og svar - så får jeg bare en masse nuller... hmmm... må vist prøve at kigge lidt mere på den......
Avatar billede Morten Nybegynder
28. januar 2004 - 15:33 #9
ahhh... altså det var derfor - jeg skal altså så bare huske IKKE at gemme filen... hmmm... du får lige point og håber jeg kan vende tilbage med evt....
Avatar billede Morten Nybegynder
28. januar 2004 - 15:38 #10
men den virker lidt tung - det må da være hurtigere at læse filen uden at åbne den i word - hvis nogen har en anden løsning - gi'r jeg gerne points...
Avatar billede rvm Nybegynder
28. januar 2004 - 21:33 #11
Jeg er enig i at den er lidt tung, men i Word er må man nogle gange den hårde vej *S*
Avatar billede Morten Nybegynder
29. januar 2004 - 09:06 #12
ingen der kan skrive den så den bare tilgår filen uden at åbne den i word?
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