使用VBA提取word文档的段落号
Posted
技术标签:
【中文标题】使用VBA提取word文档的段落号【英文标题】:Extract paragraph number of word document using VBA 【发布时间】:2022-01-19 00:16:12 【问题描述】:有人要求我帮助我在 Word 中获取评论的段落编号。注意,Word VBA 不是我的强项。进行了一些搜索后,我整理了一个提取 cmets 本身的示例,但不确定如何获取段落编号。
在下面的示例中,我想提取注释(作为单词注释插入)和相关的段落编号,即:
评论 1 - 1.1.1.1
评论 2 - 1.1.1.3
评论 3 - 1.1.2.1.1
下面的示例代码。我如何访问段落级别属性,到目前为止我的尝试都没有产生任何结果并且我在文档中找不到它。
Public Sub ExtractComments()
Dim oDoc As Document
Dim nCount As Long
Dim n As Long
Set oDoc = ActiveDocument
nCount = ActiveDocument.Comments.Count
'Get info from each comment from oDoc and insert in table
For n = 1 To nCount
Debug.Print (oDoc.Comments(n).Scope.Information(wdActiveEndPageNumber))
Debug.Print (oDoc.Comments(n).Scope.Information(wdFirstCharacterLineNumber))
Debug.Print (oDoc.Comments(n).Scope.ParagraphStyle)
Debug.Print (oDoc.Comments(n).Scope.Paragraphs(1).Range.ListFormat.ListString)
Next n
Set oDoc = Nothing
End Sub
【问题讨论】:
【参考方案1】:像这样:
Sub GetParagraphNumberofComment()
Dim n As Long
For n = 1 To ActiveDocument.Comments.Count
MsgBox ActiveDocument.Range(0, ActiveDocument.Comments(n).Scope.Paragraphs(1).Range.End).Paragraphs.Count
Next n
End Sub
【讨论】:
谢谢,我刚刚编辑了上面的格式以帮助使其更清晰 - 问题是在评论之前找到最后一个段落标题。您的示例给了我评论的行号,而不是上面标题的段落号,如果这有意义的话? 那么一旦找到评论的段落号,难道不可以直接从索引中减去1得到上一个吗?也许我没有完全理解。 见:***.com/questions/69183801/…以上是关于使用VBA提取word文档的段落号的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式从 Word 2007 文档中提取宏 (VBA) 代码
OpenXML - 将书签应用于 Word 文档中的段落
选择非粗体文本并更改其颜色(选定段落的)- MS Word VBA 宏
用VBA直接在WORD中能正常运行的方法或属性相关常量设置,在EXCEL中处理WORD文档时都有哪些变化?