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...
Annonceindlæg fra Computerworld it-jobbank
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)
28. januar 2004 - 14:13
#2
Arbejder på sagen *S*
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
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
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?
28. januar 2004 - 15:04
#6
Kan du ikke "bare" åbne filen via Word og køre koden?
28. januar 2004 - 15:10
#7
tjoooee egentlig - prøver lige
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......
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....
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...
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*
29. januar 2004 - 09:06
#12
ingen der kan skrive den så den bare tilgår filen uden at åbne den i word?
Tag et kursus i Word og øg effektiviteten