17. december 2005 - 13:29Der er
4 kommentarer og 2 løsninger
makro til indsættelse af flere liner fra txt fil
Jeg skal lave en "tilbuds" skabelon i word, hvortil der skal laves en makro. Makroen skal indlæse header info (navn, adresse,mv.) der indsættes øverst i min skabelon. Herefter skal der indlæses X antal liner fra filen, der indsættes som "salgslinier" ca. midt i skabelonen.
Jeg har ikke tidligere arbejdet ret meget med word, dot, og makro, så jeg håber i kan hjælpe mig igang.
Her er lidt kodet til at hente flere linier fra en txt fil:
Sub Hent() strFilnavn = "c:\Navne.txt" intFilNr1 = FreeFile Open strFilnavn For Input As intFilNr1 Do While Not EOF(intFilNr1) Line Input #intFilNr1, strNavn strLinier = strNavn Loop Close intFilNr1 End Sub
strLinier vil efter hvert loop blive tildelt næste linies indhold i tekstfilen.
Du kan så bruge bogmærker til at placere teksten korrekt. F.eks.
Sub Hent() strFilnavn = "c:\Navne.txt" intFilNr1 = FreeFile Open strFilnavn For Input As intFilNr1 Do While Not EOF(intFilNr1) tæller = tæller + 1 Line Input #intFilNr1, strNavn
Select Case tæller Case 1 'Navn ActiveDocument.Bookmarks("Navn").Select Selection.TypeText strNavn Case 2 ActiveDocument.Bookmarks("Adresse").Select Selection.TypeText strNavn Case 3 ActiveDocument.Bookmarks("PostrBy").Select Selection.TypeText strNavn Case 4 ActiveDocument.Bookmarks("Resten").Select Selection.TypeText strNavn End Select Loop Close intFilNr1 End Sub
Som sagt har jeg ikke arbejdet så meget med word tidligere, men det lykkes mig da at få afspillet din makro med case statements.
Dit første simple eksempel har jeg ikke helt gennemskuet - hvordan ved jeg hvor linierne indsættes i dokumentet ?
Du sætter strLinier = strNavn , men hvordan ved word hvad StrLinier referere til ?
Jeg kender nu opgaven lidt mere præcis og har brug for at kunne indsætte felterne fra min tekstfil i en tabel.
Forestil dig en tabel med 7 kolonner, som skal udfyldes på baggrund af følgende oplysninger i filen.
Hvert <;> betyder at vi skal hoppe til næste felt (svarre til Tab-tasten)
;;Tilbud;;;; 1;Stk;Undervisning & installation af PC;kr.;1.500,00;; 3;Stk;Win 98;kr.;2.500,00;;
Kan du hjælpe mig igang med koden til at finde frem til tabellen i mit dokument, og herefter begynde at indsætte data fra filen, hvor der tages hensyn til <;> markeringen.
Indsæt et bogmærke i den første celle i tabellen, der hedder "bmkTabel" og køre nedenstående kode- husk at ændre navnet på txt filen.
Sub Hent() strFilnavn = "c:\TilWord.txt" ' husk at ændre denne sti til din sti og din txt fil intFilNr1 = FreeFile Open strFilnavn For Input As intFilNr1 ActiveDocument.Bookmarks("bmkTabel").Select Førstegang = True Do While Not EOF(intFilNr1) Line Input #intFilNr1, StrNavn MyArray = Split(StrNavn, ";")
For n = 0 To UBound(MyArray)
If Førstegang = True Then Førstegang = False Else Selection.MoveRight Unit:=wdCell End If
Selection.TypeText MyArray(n) Next n Loop Close intFilNr1 End Sub
rvm - Jeg tror alt jeg skal bruge lige nu - men håber du er klar til at hjælpe igen, hvis jeg støder på nye udfordringer.....
Synes godt om
Ny brugerNybegynder
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.