【问题标题】:Extracting the Author and Comments from Word to Excel从 Word 中提取作者和评论到 Excel
【发布时间】:2018-09-22 23:50:33
【问题描述】:

我有以下代码,它从 Word 文档中提取文本字符串并将其导出到 Excel 电子表格中。 A 列读取 cmets,B 列读取它所引用的原始文本。我还想将发表评论的作者提取到电子表格中,但不知道如何提取。谢谢。

    Option Explicit




   Public Sub FindWordComments()
'Requires reference to Microsoft Word v14.0 Object Library

Dim objExcelApp As Object
Dim wb As Object
Set objExcelApp = CreateObject("Excel.Application")
Set wb = objExcelApp.Workbooks.Open("C:\Users\cetraig\Documents\Projects\_HRBT\Book1.xlsx")

Dim myWord              As Word.Application
Dim myDoc               As Word.Document
Dim thisComment         As Word.Comment

Dim fDialog             As Office.FileDialog
Dim varFile             As Variant

Dim destSheet           As Worksheet
Dim rowToUse            As Integer
Dim colToUse            As Long

Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
Set destSheet = wb.Sheets("Sheet1")
colToUse = 1

With fDialog
    .AllowMultiSelect = True
    .Title = "Import Files"
    .Filters.Clear
    .Filters.Add "Word Documents", "*.docx"
    .Filters.Add "Word Macro Documents", "*.docm"
    .Filters.Add "All Files", "*.*"
End With

If fDialog.Show Then

    For Each varFile In fDialog.SelectedItems

        rowToUse = 2

        Set myWord = New Word.Application
        Set myDoc = myWord.Documents.Open(varFile)

        For Each thisComment In myDoc.Comments

            With thisComment
                destSheet.Cells(rowToUse, colToUse).Value = .Range.Text
                destSheet.Cells(rowToUse, colToUse + 1).Value = .Scope.Text
                destSheet.Columns(2).AutoFit
            End With

            rowToUse = rowToUse + 1

        Next thisComment

        destSheet.Cells(1, colToUse).Value = Left(myDoc.Name, 4)
        'Put name of interview object in cell A1

        destSheet.Cells(1, colToUse + 1).Value = ActiveDocument.Words.Count
        'Put the number of words in cell B1

        Set myDoc = Nothing
        myWord.Quit

        colToUse = colToUse + 2

    Next varFile

    End If

    End Sub

【问题讨论】:

    标签: excel vba ms-word


    【解决方案1】:

    添加一行:

    destSheet.Cells(rowToUse, colToUse + 2).Value = .Author
    

    应该做的伎俩

    (假设你希望它在下一列结束)

    【讨论】:

    • 它应该不会自动打开吗?当我运行它时,Word 要求我导入文件,所以我打开我已经打开的 Word 文档。然后代码没有错误,但我的 Excel 文件不会自动打开,当我去时它也不会更新运行代码后进入它
    • 也许您应该编辑您的问题并澄清问题所在,我知道您想知道如何提取评论的作者。
    • @IgnacioCetrangolo 您提出的问题(实际上是暗示的)已通过此答案得到解决。如果您对代码有其他问题,请发布新问题。并将此问题标记为已回答,或解释此答案为何无法回答您提出的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    相关资源
    最近更新 更多