Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将作者和评论从Word提取到Excel_Excel_Vba_Ms Word - Fatal编程技术网

将作者和评论从Word提取到Excel

将作者和评论从Word提取到Excel,excel,vba,ms-word,Excel,Vba,Ms Word,我有以下代码从Word文档中提取文本字符串并将其导出到Excel电子表格中。A列读取注释,B列读取其引用的原始文本。我还想将发表评论的作者摘录到电子表格中,但不确定如何删除。谢谢 Option Explicit Public Sub FindWordComments() 'Requires reference to Microsoft Word v14.0 Object Library Dim objExcelApp As Object Dim wb As Object

我有以下代码从Word文档中提取文本字符串并将其导出到Excel电子表格中。A列读取注释,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
添加具有以下内容的行:

destSheet.Cells(rowToUse, colToUse + 2).Value = .Author
我们应该这样做


(假设您希望它出现在下一列中)

它应该不会自动打开吗?当我运行它时,Word要求我导入文件,所以我打开我已经打开的Word文档。。然后代码没有错误,但我的Excel文件不会自动打开,而且在运行代码后进入时也不会更新。也许您应该编辑您的问题并澄清问题所在,我知道您想知道如何提取注释作者。@Ignacocetrangolo您问的问题(暗示,真的)已通过此答案解决。如果您对代码有其他问题,请发布新问题。并将此问题标记为已回答,或解释此答案如何不回答您提出的问题。