导出Word审稿评论时,如何引用评论相关的句子?

问题描述 投票:0回答:3

我正在尝试导出Word文档的审阅意见。我想导出被评论的句子选择,然后是评论。

图像屏幕截图:http://jspeaks.com/mswordcomment.png

我找到了循环遍历文档注释的代码,但我不知道如何引用与注释相关的句子选择。

目前的逻辑是:

Sub ExportComments()
    Dim s As String
    Dim cmt As Word.Comment
    Dim doc As Word.Document

    For Each cmt In ActiveDocument.Comments
        s = s & cmt.Initial & cmt.Index & "," & cmt.Range.Text & vbCr
    Next

    Set doc = Documents.Add
    doc.Range.Text = s
End Sub

我修改了 Selection.Range,但是我无法确定包含引用句子的正确对象或属性。

我想产生如下输出(如果我们使用上图中的示例):

句子:这里有更多包含有趣事实的句子 - 评论:这是一个有趣的事实。 句子:这里有更多包含有趣事实的句子。这里有更多包含有趣事实的句子。 - 评论:这是一个非常有趣的事实

macros vbscript ms-word
3个回答
8
投票

我在另一个网站上找到了有人解决这个问题。

解决的关键是:cmt.Scope.FormattedText

这是修改后的功能:

Sub ExportComments()
    Dim s As String
    Dim cmt As Word.Comment
    Dim doc As Word.Document

    For Each cmt In ActiveDocument.Comments
        s = s & "Text: " & cmt.Scope.FormattedText & " -> "
        s = s & "Comments: " & cmt.Initial & cmt.Index & ":" & cmt.Range.Text & vbCr
    Next

    Set doc = Documents.Add
    doc.Range.Text = s
End Sub

3
投票

我收集了几段代码并得出了这个解决方案:

Sub CopyCommentsToExcel()
'Create in Word vba
'TODO: set a reference to the Excel object library (Tools --> Reference --> Microsoft Excel 12.0 Object library)

Dim xlApp As Excel.Application
Dim xlWB As Excel.Workbook
Dim i As Integer
Dim HeadingRow As Integer
HeadingRow = 3

Dim cmtRef As Range

Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlWB = xlApp.Workbooks.Add ' create a new workbook
With xlWB.Worksheets(1)
' Create report info
    .Cells(1, 1).Formula = "Reviewed document:"

' Create Heading
    .Cells(HeadingRow, 1).Formula = "Index"
    .Cells(HeadingRow, 2).Formula = "Page"
    .Cells(HeadingRow, 3).Formula = "Line"
    .Cells(HeadingRow, 4).Formula = "Comment"
    .Cells(HeadingRow, 5).Formula = "Reviewer"
    .Cells(HeadingRow, 6).Formula = "Date"
    For i = 1 To ActiveDocument.Comments.Count
        .Cells(2, 1).Formula = ActiveDocument.Comments(i).Parent
        .Cells(i + HeadingRow, 1).Formula = ActiveDocument.Comments(i).Index
        .Cells(i + HeadingRow, 2).Formula = ActiveDocument.Comments(i).Reference.Information(wdActiveEndAdjustedPageNumber)
        .Cells(i + HeadingRow, 3).Formula = ActiveDocument.Comments(i).Reference.Information(wdFirstCharacterLineNumber)
        .Cells(i + HeadingRow, 4).Formula = ActiveDocument.Comments(i).Range
        .Cells(i + HeadingRow, 5).Formula = ActiveDocument.Comments(i).Initial
        .Cells(i + HeadingRow, 6).Formula = Format(ActiveDocument.Comments(i).Date, "dd/MM/yyyy")
        '        .Cells(i + 1, 3).Formula = ActiveDocument.Comments(i).Parent
        '        .Cells(i + 1, 3).Formula = ActiveDocument.Comments(i).Application
        '        .Cells(i + 1, 7).Formula = ActiveDocument.Comments(i).Author
    Next i
End With
Set xlWB = Nothing
Set xlApp = Nothing
End Sub

来自 Microsoft Answers

的最有价值的帮助

0
投票

如果您想包含与注释相关的突出显示的参考文本,请添加这些代码行以及其他类似的代码行:

.Cells(HeadingRow, 7).Formula = "参考文本" .Cells(i + HeadingRow, 7).Formula = ActiveDocument.Comments(i).Scope

另外,我必须注释掉以下代码行,也许是因为 Excel 已打开(不确定) '将 xlApp 调暗为 Excel.Application '将 xlWB 调暗为 Excel.Workbook

否则,上面的程序就很有魅力了。谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.