【发布时间】:2014-03-27 18:26:30
【问题描述】:
我有一个从 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
我需要进行哪些更改才能使其适用于表格单元格中的最后一段?
【问题讨论】:
-
欢迎来到 SO!你的第一个好问题!所以,如果我理解正确的话,如果文档中间有一个表格,有多个单元格,并且第一个单元格有多个段落,你只想修改第一个单元格中的最后一段?但是当前该单元格中的所有段落都受到影响?
-
感谢您的欢迎和反馈。也许一些图片可以最好地描述这个问题:imgur.com/a/TVSBX 1. 在任何宏运行之前。 2. 宏已正确修改表格单元格中的第二段。 3. 宏正在选择表格单元格中的第三个段落(因为它包括单元格结尾标记,所以它会突出显示所有段落)。 4. 格式已应用,但适用于整个单元格。不是想要的效果。
-
由于网络限制,我无法查看链接,但我创建了一个 word doc,其中包含 2 列宽 3 行的表格,在单元格 (2,2) 中放置了两个段落,并且您的代码分别处理了这两个段落。如果您打开符号
ctrl+shift+*您在单元格中看到多个段落符号还是只有一个? -
在单元格 (2,2) 我有三个段落。打开符号,我看到第一段和第二段之后的段落标记,但不是第三段。第三段只显示单元格标记的结尾,它看起来像一个带有线条的圆圈。
-
这就是我所期望的。我在 for 循环中添加了
MsgBox iPara.Range,它分别列出了每个段落,这让我认为这可能与您的div_NoteText条件有关。那是内置的 NameLocal 还是别名?