奇数排序(Microsoft Word)
一位_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的旧菜单界面在这里:
奇数排序。