我有以下代码:
For Each DocPara In ActiveDocument.Paragraphs
If (DocPara.style = "Title 1") Then
...
Else
(if DocPara is LIST then)
...
(else if DocPara is TABLE then)
...
End If
Next DocPara
因此,我需要知道当前段落是否为LIST和TABLE。
谢谢。
答案 0 :(得分:2)
您可以通过获取表计数来测试段落范围是否在表格中:如果它大于零(Range.Tables.Count > 0
),则该范围在表格中。还有一个较旧的WordBasic方法:Range.Information(wdWIthinTable) = true
。
要确定范围是否属于列表(项目符号或编号),可以使用Range.ListFormat.ListType
。这将返回WdListType
枚举的成员。 wdListNoNumbering
是0
-您可以使用任何一个值。枚举的其他成员可以告诉您是有用的信息还是子弹(和哪种)或数字(什么样的列表)。
我已经更改了检查列表和表的顺序,将表放在第一位的前提是您首先需要了解这一点。 (然后将不会检查列表。)
Sub CheckParaType()
Dim DocPara As Word.Paragraph
Dim rngPara As Word.Range
For Each DocPara In ActiveDocument.paragraphs
Set rngPara = DocPara.Range
If (DocPara.style = "Title") Then
Debug.Print "Style is OK"
ElseIf rngPara.Tables.Count > 0 Then
Debug.Print "It's in a table"
ElseIf rngPara.ListFormat.ListType <> 0 Then
Debug.Print "It's a list."
Else
Debug.Print "the paragraph is something else"
End If
Next DocPara
End Sub