Condividi:        

Macro trova e sostituisci per Word

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Macro trova e sostituisci per Word

Postdi fleetingcloud » 15/04/16 15:17

Buon giorno , e grazie in anticipo a chi rispondera.
Allora io ho questa macro in exel:

Codice: Seleziona tutto
Sub find_replace()
Dim free_file As Integer, s As String, v As Variant

    free_file = FreeFile
    Open "lista.txt" For Input As free_file
   
    While Not EOF(1)
        Line Input #1, s
        v = Split(s, "=")
        Cells.Replace Trim(v(0)), Trim(v(1)), MatchCase:=True
    Wend
   
    Close free_file
   
    MsgBox "Operazioni completate.", vbInformation, "Fatto"

End Sub

che trova e sostituisce in exel una serie di parole che vengono prese da un file txt , come devo modificare il codice per far si che la macro possa funzionare anche in word? ( mettendola tra le macro di word)
fleetingcloud
Newbie
 
Post: 7
Iscritto il: 15/04/16 15:13

Sponsor
 

Re: Macro trova e sostituisci per Word

Postdi Anthony47 » 15/04/16 23:32

Ciao fleetingcloud, benvenuto nel forum.
Magari potrebbe funzionare questa:
Codice: Seleziona tutto
Sub find_replaceWD()
Dim free_file As Integer, s As String, v As Variant

free_file = FreeFile
Open "lista.txt" For Input As free_file

While Not EOF(1)
    Line Input #1, s
    v = Split(s, "=")
'    Cells.Replace Trim(v(0)), Trim(v(1)), MatchCase:=True
    With Selection.Find
        .Text = Trim(v(0))
        .Replacement.Text = Trim(v(1))
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
Wend
Close free_file
MsgBox "Operazioni completate.", vbInformation, "Fatto"
End Sub


Fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 19225
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro trova e sostituisci per Word

Postdi fleetingcloud » 17/04/16 13:05

funziona grazie
fleetingcloud
Newbie
 
Post: 7
Iscritto il: 15/04/16 15:13

Re: Macro trova e sostituisci per Word

Postdi fleetingcloud » 17/04/16 15:09

Un ultima cosa , ho messo true in matchcase e in wholeword così da modificare solo le parole intere e considerando le maiuscole e minuscole . Però mi rimane un problema nn mi mette gli spazi dopo il sostituisci alle parole dove mi serve e nn considera i . Come faccio ?
per esempio 1.11 diventa 1 il mentre 1.11.1 deve rimanere così è invece lo modifica in 1.il.1
e sez. Deve diventare sez. Con uno spazio dopo ma non lo fa pur mettendolo nel file lista.txt
fleetingcloud
Newbie
 
Post: 7
Iscritto il: 15/04/16 15:13

Re: Macro trova e sostituisci per Word

Postdi Anthony47 » 18/04/16 12:44

Per cominciare sostituisci questa
Cells.Replace Trim(v(0)), Trim(v(1)), MatchCase:=True
con questa:
Codice: Seleziona tutto
Cells.Replace v(0), v(1), MatchCase:=True

Per l'altro problema, a parte che mi posso solo immaginare quel che vorresti e quel che ti restituisce, credo che dovrai rivedere il contenuto del file txt rispetto al contenuto del word.
Non devi nemmeno scartare l'ipotesi di fare piu' giri di sostituzioni per evitare che, mettiamo, se vuoi sostituuire "1" con "A" non ti trasformi anche 11 in AA. Per questo, in un primo giro sostituisci "11" con "##", fai il giro di sostituzione degli 1 con le A, fai un giro finale per ripristinare i ## con 11.
E' una idea da adattare sui tuoi dati.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19225
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Macro trova e sostituisci per Word":


Chi c’è in linea

Visitano il forum: Nessuno e 101 ospiti