Una famiglia di prodotti software per l'elaborazione di testo Microsoft per la creazione di documenti Web, messaggi di posta elettronica e stampa.
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