deaktivert443556 Skrevet 4. desember 2006 Del Skrevet 4. desember 2006 Jeg har en stor tekstfil hvor jeg ønsker å bytte ut noe tekst. Det er dessverre ikke så enkelt at jeg kan bruke den innebygde erstatt-funksjonen ettersom at jeg skal bytte ut hele linjen når denne begynner med en bestemt tekst. F.eks så skal alle linjer som begynner med "Tekst" erstattes med "Tekst 20". Normalt sett ville jeg kopiert hele greia inn i Excel (hvor jeg er mer stødig) og lagd en sak selv, men det er snakk om over 300.000 linjer, så jeg må nesten bruke Word. Det som kan gjøre det litt lettere, er at det er fast avstand mellom linjene som skal erstattes. Så er det en enkel måte å gjøre slik at f.eks hver 10. linje skal fjernes og byttes ut med "Tekst 20"? All hjelp ville vært helt supert! Lenke til kommentar
aadnk Skrevet 4. desember 2006 Del Skrevet 4. desember 2006 (endret) Hm, jeg skulle tro makroer ville greie dette utmerket. Lim inn følgende kode i kodevinduet som dukker opp når du trykker ALT+F11: Sub Main() Dim sFind As String, sReplace As String Dim Lines, Tell As Long ' * Innstillinger * sFind = "Tekst" sReplace = "Tekst 20" ' Hent alle linjer Lines = Split(Me.Range.Text, Chr(13)) ' Gå gjennom alle linjer, ... For Tell = LBound(Lines) To UBound(Lines) ' ... og erstatt den dersom den begynner med den angitte tekst. If Left(Lines(Tell), Len(sFind)) = sFind Then Lines(Tell) = sReplace End If Next ' Lagre resultatet Me.Range.Text = Join(Lines, Chr(13)) End Sub Endre teksten innenfor hermetegnene til det du ønsker å finne i sFind og det som linjen skal bli erstattet til i sReplace, hvoretter du må plasser markøren nedenfor den første linjen og trykke F5. Linjene som stemmer overens med søkestrengen, skulle nå være erstattet med teksten du oppgav. Endret 4. desember 2006 av aadnk Lenke til kommentar
deaktivert443556 Skrevet 5. desember 2006 Forfatter Del Skrevet 5. desember 2006 (endret) Flott, takker så mye! Jeg klarte å koke sammen noe greier i går hvor scriptet søker seg frem, marker hele linjen, fjerner den og setter inn ny tekst. Så brukte jeg do/loop for at scriptet skulle gjenta seg gjennom hele dokumentet. Naturligvis ganske så optimistisk ettersom at å starte det scriptet på denne PCen er som å be en underernært dverg bære en jumbojet på ryggen. Ditt script ser mye mer lovende ut, men jeg støter på et lite problem. "Compile error: Invalid use of Me keyword" Noen idéer? Edit: n/m Jeg hadde lagt koden i en modul. Fikk lagt den inn riktig nå, og det gikk lynende raskt. Takk igjen! Endret 5. desember 2006 av Bradbury Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå