Michele需要一种方法来计算项目符号列表或文档中编号列表的数量。她想知道如何在Word中完成此操作。

这比想象的要难一点,最重要的是我们找不到可靠地产生计数的方法。其原因可能需要一些解释。

您可以通过多种方式向文档添加样式。例如,您可以单击功能区“主页”选项卡上的“编号列表”或“项目符号列表”工具,以将当前段落转换为列表。您还可以开始键入文字,并允许Word检测(通过键入时自动套用格式)是创建编号列表还是项目符号列表。您甚至可以定义和应用样式,以指定要用作列表的样式。

不管创建列表的方式如何,Word都会将样式与列表中的段落相关联。如果您创建并应用自己的样式,那么(当然)会使用该特定样式。如果您使用工具栏按钮或依靠自动套用格式来创建列表,则Word会自动应用“列表段落”样式。 (是的,无论是编号列表还是项目符号列表,它都使用完全相同的样式。)

由于样式与列表相关联,因此您可以快速确定正在使用多少个样式实例。您需要做的就是显示“样式”任务窗格(显示功能区的“主页”选项卡,然后单击“样式”组右下角的小图标)。找到用于列表的样式,将鼠标指针悬停在该样式名称上,然后单击该名称右侧显示的向下箭头。您会看到类似以下内容之一:

  • 全选:(无数据)

  • 选择所有X个实例

如果您看到的与第一种格式匹配,则选择该选项。当您将鼠标悬停在样式名称上并再次单击向下箭头时,您看到的内容应与第二种格式匹配。

您可能会认为这向您显示了文档中列表的数量。没有它仅显示使用此特定样式设置的段落数。因此,如果您有一个包含6个项目的列表,则返回的样式数将为6。

因此,这种计数样式的方法不能提供可靠的方法来确定列表计数。

您可能考虑的另一种方法是使用宏来确定文档中有多少个列表。 Word维护一个Lists集合,并将其提供给VBA。您可以单步浏览文档中的每个列表并检查其ListType属性。该属性实际上可以是七个不同值之一,如以下枚举所示:

wdListBullet wdListListNumOnly wdListMixedNumbering wdListNoNumbering wdListOutlineNumbering wdListPictureBullet * wdListSimpleNumbering

您可能可以弄清楚这些列表类型分别包含哪些内容,但是它们在实际中的显示效果可能会有些困惑。例如,请考虑以下宏:

Sub CheckLists()

Dim oL As List     Dim sMsg As String     Dim J As Integer     Dim K As Integer

J = ActiveDocument.Lists.Count     For Each oL In ActiveDocument.Lists         K = K + 1         oL.Range.Select

sMsg = "This is list " & K & " of " & J         sMsg = sMsg & " lists in the document." & vbCrLf & vbCrLf         sMsg = sMsg & "This list is this type: "

Select Case oL.Range.ListFormat.ListType             Case wdListBullet                 sMsg = sMsg & "wdListBullet"

Case wdListListNumOnly                 sMsg = sMsg & "wdListListNumOnly"

Case wdListMixedNumbering                 sMsg = sMsg & "wdListMixedNumbering"

Case wdListNoNumbering                 sMsg = sMsg & "wdListNoNumbering"

Case wdListOutlineNumbering                 sMsg = sMsg & "wdListOutlineNumbering"

Case wdListPictureBullet                 sMsg = sMsg & "wdListPictureBullet"

Case wdListSimpleNumbering                 sMsg = sMsg & "wdListSimpleNumbering"

End Select         MsgBox sMsg     Next oL End Sub

如果您有一个包含列表的文档并运行该文档,它将依次选择每个列表,并显示一个消息框,其中显示Word认为所选内容代表的列表类型。问题是,如果您的文本包含两个列表,两个列表中散布着一个或两个文本段落,则Word会将其视为wdListMixedNumbering类型的单个列表。换句话说,它不能准确地找出什么是列表,什么不是列表。尽管比使用样式计数方法更准确,但这使这种特定方法不可靠地计算文档中有多少个列表。

如开头所述,最重要的是,我们无法确定要准确计算文档中项目符号和编号列表的数量的方法。

注意:

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

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

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(13528)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。