27. juli 2008 - 22:01Der er
16 kommentarer og 1 løsning
Søg og erstat i mange dokumenter.
Hej eksperter! Jeg er flyttet og har mange dokumenter hvori min adresse er skrevet. Er det muligt at søge og erstatte adressen i alle dokumenter på en smart måde. De alle dokumenter er skrevet i Word 2003, Jeg har nu Word 2007 installeret. Jeg kar dog Word 2003 liggende som jeg kan installere hvis det er nødvendigt. M.v.h. C.B.C.
Oprettelse af en makro i Normal.dot, der udfører søg/erstat i det aktuelle dokument, når dette åbnes. Vil det ikke betyde at dokumentet ikke bliver rettet hvis jeg sender det til en anden bruger, uden selv at have haft det åbnet? Jeg kopierer ofte dokumenterne over på en USB stik og indsætter dem på mine børns P.C.er. C.B.C
Alternativ 1 er egentlig det jeg gerne vil undgå, nemlig at åbne alle dokumenterne, der er flere tusinde. Ang.dit spørgsmål: Det der skal rettes er i dokumentteksten. C.B.C.
Løsningsforslag? Kunne man oprette et dokument i Word med en VBA kode i, der søger efter dokumentnavne med endelsen .doc åbne et af gangen rette det man ønsker rettet gemme med samme navn, lukke dokumentet igen og gå videre til næste dokument. M.v.h. C.B.C.
Kan du hjælpe med makroen, det er begrænset hvad jeg kan i VBA programmering. Gå ud på disken udpege dokumenter der kun har efternavn få dem ladet ind og rettet og gemme dem igen er over mine evner. På forhånd tak C.B.C.
Rem BEMÆRK LINIER I KODEN - MARKERET MED <--------------------- rem Rem Når dokumentet åbnes igangsættes makroen Rem 1) Dialogboksen ÅbnFil vises Rem 2) Udpeg drev og mappe Rem 3) Når denne er valgt - trykkes der på Annuller Rem Rem (Der forventes ikke makroer i de relevante dokumenter - ellers giv signal) Rem Rem Koden anbringes i et tomt Word-dokument (Alt+F11) Rem ================================================= Dim xDoc Sub AutoOpen() 'Vælg hvilke drev/mappe Dim aktuelleSti aktuelleSti = valgAfSti If aktuelleSti <> "" Then findFiler aktuelleSti
MsgBox ("Søg&Erstat på stien: " + aktuelleSti + " er udført") Else MsgBox ("Sti er ikke valgt") End If End Sub Private Function valgAfSti() Dim doksti filNavn = "" On Error GoTo fejl1
With Dialogs(wdDialogFileOpen) .Name = "*.doc" .Display valgAfSti = CurDir
If Right(valgAfSti, 1) <> "\" Then valgAfSti = valgAfSti + "\" End If End With
Exit Function
fejl1: valgAfSti = "" End Function Private Sub findFiler(aktuelleMappe) Dim fs, f, f1, fc Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(aktuelleMappe) Set fc = f.Files
Rem Check de enkelte filer i valgte drev/mappe For Each f1 In fc If Right(LCase(f1.Name), 4) = ".doc" Then udførSøgErstat aktuelleMappe + f1.Name End If Next End Sub Private Sub udførSøgErstat(docFil) Set xDoc = CreateObject("Word.Application") With xDoc .Documents.Open FileName:=docFil End With
Rem Gentages det nødvendige antal gange søgErstat "gl. adresse", "Ny adresse" '<---------------------- søgErstat "gl. postnr", "Nyt postnr" '<----------------------
If xDoc.ActiveDocument.Saved = False Then xDoc.ActiveDocument.Save End If
xDoc.Application.Quit Set xDoc = Nothing End Sub Private Sub søgErstat(søg, erstat) With xDoc Set myRange = .ActiveDocument.Range(Start:=0, End:=0) Selection.HomeKey Unit:=wdStory Selection.Find.Replacement.ClearFormatting With .Selection.Find .Text = søg .Replacement.Text = erstat .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With .Selection.Find.Execute Replace:=wdReplaceAll End With End Sub
Jeg har oprettet en mappe FORSØG i denne er dokumentet test placeret, Dokumentet indeholder 2 linjer Adresse " GL " Postnummer " 1234 " som også er indsat i koden og i erstat skrevet " NY " " 5678 " Makroen er er placeret i et tomt dokument -HENT RET GEM- når dette dokument åbnes, vises Dialogboksen ÅbnFil ganske rigtigt og jeg udpeger mappen FORSØG og trykker på annuller. Derefter åbnes dialogboksen igen og jeg vælger den mappe der skal gemmes i og dokumentet rettes. Så langt så godt, men der mangler tilsyneladende en måde at få stoppet makroen på da den selvfølgelig starter forfra når en mappe er gennemgået. Hvordan får man den stoppet? C.B.C.
Nu skulle det vel ikke være sådan, at selve "SystemDokumentet" m/makroen også ligger i mappen FORSØG? Hvis det er tilfældet - så prøv at flytte dette til anden placering...
Jeg har været arbejdsramt så derfor denne pause i respons: Du har ret det var nemlig sådan at jeg havde fået den lagt i alle dokumenter, efter denne rettelse virker det efter hensigten. Tusind tak læg et svar du så rigeligt fortjent dine point. M.v.h. C.B.C.
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.
Følg dette spørgsmålOpretPreview
Flere spørgsmål fra Office & Kontorpakker kategorien