Problema con le macro di word 2016

Anonimo
2018-02-05T08:05:18+00:00

Salve, ho un problema con la mia copia di word 2016. Siccome mi serve durante la traduzione di alcuni testi, ho impostato una macro, che fa solamente due cose: ordina in ordine alfabetico dei valori selezionati (scritti già a capo), e sostituisce gli a capo del testo con una virgola e uno spazio. 

Ad esempio:

Giorgio

Barbara

Anna

Manuel

La macro fa in sequenza prima un ordinamento alfabetico:

Anna

Barbara

Giorgio

Manuel

E dopo fa un trova e sostituisci "^p" -> ", ":

Anna, Barbara, Giorgio, Manuel,

Ora, il mio problema è che, mentre fino a qualche tempo fa la macro che avevo registrato funzionava alla perfezione, adesso se c'è del testo dopo i valori che seleziono, la sostituzione dopo l'ordinamento mi viene fatta anche su tutto il resto del testo, come se perdesse la selezione del testo e quindi andasse a sostituire i valori su tutto il documento. Ho provato a modificare il codice della macro, ma mentre su un documento di prova sembra funzionare, continuo ad aver problemi sul documento su cui lavoro. Qualcuno di voi ha qualche suggerimento per far funzionare questa maledetta macro in maniera da consentirmi un lavoro decente?

Microsoft 365 e Office | Word | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

2 risposte

Ordina per: Più utili
  1. Anonimo
    2018-02-05T10:52:50+00:00

    Normalmente, alla fine della selezione di un testo, la selezione si espande di un carattere a destra di questo perché comprende anche il carattere nascosto a capo (segno di paragrafo).

    Prova a evitare di selezionare quest'ultimo carattere (Maiusc+ freccia sinistra).

    Quindi lancia la macro.

    Fai sapere.

    Già provato, non funziona. Il problema non è che espande la selezione, è che sembra perdere la selezione dopo l'ordinamento, e quindi applica la sostituzione a tutto il testo. Ho provato anche mettendo un a capo aggiuntivo in cima e in fondo alla selezione da ordinare, evitando naturalmente di selezionarli, e mi fa comunque lo stesso lavoro. Inoltre, sul testo di prova dopo la modifica della macro (non sono esperto di vba, ma ho qualche nozione di programmazione, per cui un po' a senso, un po' capendo a cosa si riferiscono i vari parametri, ho fatto qualche modifica), questa funziona (ho messo solo i valori in colonna e ne ho selezionato una parte) mentre sul file su cui lavoro continua a darmi il problema.

    Aggiungo la macro che ho registrato senza modifiche:

    Sub Sorting()

    '

    ' Sorting Macro

    '

    '

        Selection.Sort ExcludeHeader:=False, FieldNumber:="Paragrafi", _

            SortFieldType:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending, _

            FieldNumber2:="", SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:= _

            wdSortOrderAscending, FieldNumber3:="", SortFieldType3:= _

            wdSortFieldAlphanumeric, SortOrder3:=wdSortOrderAscending, Separator:= _

            wdSortSeparateByTabs, SortColumn:=False, CaseSensitive:=False, LanguageID _

            :=wdItalian, SubFieldNumber:="Paragrafi", SubFieldNumber2:="Paragrafi", _

            SubFieldNumber3:="Paragrafi"

        Selection.Find.ClearFormatting

        Selection.Find.Replacement.ClearFormatting

        With Selection.Find

            .Text = "^p"

            .Replacement.Text = ", "

            .Forward = True

            .Wrap = wdFindAsk

            .Format = False

            .MatchCase = False

            .MatchWholeWord = False

            .MatchWildcards = False

            .MatchSoundsLike = False

            .MatchAllWordForms = False

        End With

        Selection.Find.Execute Replace:=wdReplaceAll

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2018-02-05T08:38:22+00:00

    Normalmente, alla fine della selezione di un testo, la selezione si espande di un carattere a destra di questo perché comprende anche il carattere nascosto a capo (segno di paragrafo).

    Prova a evitare di selezionare quest'ultimo carattere (Maiusc+ freccia sinistra).

    Quindi lancia la macro.

    Fai sapere.

    La risposta è stata utile?

    0 commenti Nessun commento