Word包括一个内置的编号列表功能,您可以使用该功能快速开发列表。这对于以升序排列(1到10)的列表非常有用,但对于想要以降序排列(10到1)的列表则不太好。

如果您需要反向列表,则Word中没有自动功能可让您创建它们。解决此问题的一种方法是简单地创建您自己的列表编号,并将其按所需顺序排列。问题在于该过程是手动密集的。此外,如果在现有列表项的末尾按Enter,则Word的常规编号列表功能可能会对反向列表造成严重破坏。

处理这种情况的另一种方法是在列表中的每个项目之前加上SEQ字段以生成列表项目的编号。完成列表项后,您可以更新字段并以降序对段落进行排序。这种方法的明显缺点是您需要以相反的顺序输入初始列表,因为最终排序将为您进行排序。因此,如果您有10个项目,则应首先输入数字10,然后输入数字9,依此类推。当您进行排序时,项目的顺序将颠倒,并且每个项目都将以其最终顺序结束。

这样做的另一个缺点是,将项目添加到列表变得很麻烦,并且如果您更新文档中的字段,则数字将被完全删除。因此,必须找到一种更令人满意的方法。

一种方法是修改SEQ字段,使其更适当地显示段落的预期顺序。可以通过以下方式使用复合字段作为列表编号:

{=NP — {SEQ RevList}}

在这种情况下,字符NP必须替换为比最终列表中的项目数大一的数字。因此,如果您的列表包含25个项目,则NP将为26。SEQ字段用于生成从NP减去数字的升序,以给出最终的逆序编号。

只要您知道列表中的段落(项目)数,并且记得将字段放在每个段落的开头,您的状态就很好。如果您忘记了其中一个,则可以取消列表。为了解决这个问题,宏可以派上用场。下面的宏(RevList和DoList)可以解决问题。

Sub RevList()

Dim ShowFlag As Boolean     Dim Numparas As Integer     Dim Counter As Integer

Numparas = Selection.Paragraphs.Count     Selection.MoveLeft Unit:=wdCharacter, Count:=1     ShowFlag = ActiveWindow.View.ShowFieldCodes     ActiveWindow.View.ShowFieldCodes = True     DoList Numparas     Counter = 1     While Counter < Numparas         Selection.Move Unit:=wdParagraph, Count:=1         DoList Numparas         Counter = Counter + 1     Wend     ActiveWindow.View.ShowFieldCodes = ShowFlag     ActiveDocument.Select     ActiveDocument.Fields.Update End Sub
Private Sub DoList(Cnt As Integer)

Selection.Extend     Selection.MoveRight Unit:=wdCharacter, Count:=1     If InStr(Selection.Text, "SEQ") > 0 Then         Selection.MoveRight Unit:=wdCharacter, Count:=2         Selection.Delete Unit:=wdCharacter, Count:=1     Else         Selection.Collapse Direction:=wdCollapseStart     End If     Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _         PreserveFormatting:=False     Selection.TypeText Text:="=" & Cnt + 1 & "-"

Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _         PreserveFormatting:=False     Selection.TypeText Text:="SEQ RevList"

With Selection.ParagraphFormat         .LeftIndent = InchesToPoints(0.5)

.FirstLineIndent = InchesToPoints(-0.5)

End With     Selection.MoveRight Unit:=wdCharacter, Count:=4     Selection.InsertAfter "." & vbTab End Sub

要使用宏,只需选择要包含在列表中的段落,然后运行RevList,后者使用DoList。适当的字段放在每个段落的开头(删除已经存在的任何字段),并对这些段落应用悬挂的缩进。

如果要修改悬挂缩进的创建方式,只需更改DoList宏中设置LeftIndent和FirstLineIndent属性的行。

注意:

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

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

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(1759)适用于Microsoft Word 97、2000、2002和2003。您可以在Word(Word 2007)的功能区界面中找到此技巧的版本。和更高版本)在这里: