一位_WordTips_读者写道,询问如何使用Word对多年来收集的某些数据进行排序。数据用于律师事务所,因此名称可以带有后缀,例如:

John Davis, Esq.

问题是如何正确地对此进行排序,因为读者可以在WordPerfect下进行处理。当然,最佳的长期解决方案是将数据转换为数据库格式,例如Access,甚至转换为电子表格,例如Excel。除此之外,以下宏将允许对列表进行正确排序:

Sub CustomSort()

Set myrange = Selection.Range     For Each p In myrange.Paragraphs         p.Range.Select         If InStr(1, p, ",") > 0 Then             CharCount = InStr(1, p, ",") - 1             Selection.StartOf             Selection.MoveRight Unit:=wdCharacter, _               Count:=CharCount         Else             Selection.EndOf             Selection.MoveLeft Unit:=wdCharacter, _               Count:=1         End If         Selection.MoveLeft Unit:=wdWord, Count:=1         Selection.MoveLeft Unit:=wdCharacter, _           Count:=1, Extend:=wdExtend         Selection.TypeText Text:=vbTab     Next p     myrange.Select     Selection.Sort ExcludeHeader:=False, _       FieldNumber:="Field 2", _       SortFieldType:=wdSortFieldAlphanumeric, _       SortOrder:=wdSortOrderAscending, _       FieldNumber2:="Field 1", _       SortFieldType2:=wdSortFieldAlphanumeric, _       SortOrder2:=wdSortOrderAscending, _       FieldNumber3:="", _       SortFieldType3:=wdSortFieldAlphanumeric, _       SortOrder3:=wdSortOrderAscending, _       Separator:=wdSortSeparateByTabs, _       SortColumn:=False, _       CaseSensitive:=False, _       LanguageID:=wdLanguageNone End Sub

若要使用此宏,只需选择要排序的段落,然后运行宏。它在每个段落中搜索逗号,然后在逗号之前找到单词。它替换空格(或制表符)

在带有标签的单词之前。因此,每个段落分为两个字段:第一个字段(可能是中间名)是第一个字段,而第二个字段是姓氏和可能的后缀。然后根据第二个字段对选择进行排序。

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)此技巧(10077)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。您可以找到此技巧的版本,以用于Word的旧菜单界面在这里: