我有一个项目,我将其从MadCap Flare导出到Word 2010,并使用VBA脚本更新文档的格式。我试图检查文档中每个段落的样式,如果它与特定样式匹配,则应用多级列表格式。
它几乎可以无问题地工作。当段落作为表格单元格中的最后一个段落时,问题就会出现。在这种情况下,范围包括单元格结束标记(因此范围包括单元格中的每个段落),因此更改会应用于单元格中的每个段落,而不仅仅是最后一个段落。
我使用的代码如下:
我需要做哪些改动才能让这个在表格单元格中的最后一段起作用?
它几乎可以无问题地工作。当段落作为表格单元格中的最后一个段落时,问题就会出现。在这种情况下,范围包括单元格结束标记(因此范围包括单元格中的每个段落),因此更改会应用于单元格中的每个段落,而不仅仅是最后一个段落。
我使用的代码如下:
For Each iPara In ActiveDocument.Paragraphs
With iPara.Range
If iPara.Style.NameLocal = "div_NoteText" Then
.ListFormat.ApplyListTemplateWithLevel ListTemplate:= _
ListGalleries(wdOutlineNumberGallery).ListTemplates(1), _
ContinuePreviousList:=False, ApplyTo:=wdListApplyToWholeList, _
DefaultListBehavior:=wdWord10ListBehavior, ApplyLevel:=1
End If
End With
Next
我需要做哪些改动才能让这个在表格单元格中的最后一段起作用?
ctrl
+shift
+*
,您会在单元格中看到多个段落符号还是只有一个? - jmstokerMsgBox iPara.Range
,它单独列出每个段落,这让我想到可能与你的div_NoteText
条件有关。那是内置的NameLocal还是别名? - jmstokerMsgBox iPara.Range
后,对于单元格中的最后一段落,它只显示了该段落,但是在消息框的下一行还显示了一个框形图标。我认为这代表了单元格结束字符,当选择它时,整个单元格实际上包含在范围内。 - jarch3riPara.Range.Select
时,你会看到整个单元格是如何被选中的。 - jarch3r