比较三个或更多 Word 文档 (*.docx)

比较三个或更多 Word 文档 (*.docx)

我见过多个关于如何比较两个 Word 文档的问题和答案,也见过一些关于如何比较三个或更多原始文本文件的问题和答案,但我很难找到一种方法来比较三个或更多 Word 文档。

我不需要比较格式,我也不介意不能编辑或合并它们,但我希望能够看到文件的不同之处突出显示。我知道我可以将文本复制到文本文件中,并在纯文本差异工具中使用它,但我需要比较的一些 Word 文档相当大。

答案1

软件http://winmerge.org/可以选择三向文件比较屏幕截图链接

有一些插件可能有助于您解决问题的 Word 部分。

然而,比较文本可能是最有效的。

答案2

据我所知,没有一种方法可以同时在屏幕上并排比较两个以上的文档。

如果您有多个修订文档,您可以将它们合并为一个新文档,但您可能已经知道该功能。

如果您有多个修订文档,并且想要“自动化”该过程以减少一些必须进行的手动输入,则可以使用如下所示的宏。

Sub CompareDocs()
    Dim doc As word.Document, iDoc As word.Document, rDoc As word.Document
    Dim selFiles() As String, strFolderPath As String
    Dim Sep As String, i As Long
    On Error GoTo errHandler

    Sep = Application.PathSeparator
    Set doc = ActiveDocument
    Application.ScreenUpdating = False
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Select the files to compare to your source document"
        .InitialFileName = curDir
        .AllowMultiSelect = True
        If .Show = 0 Then
            Exit Sub
        End If
        ReDim Preserve selFiles(.SelectedItems.Count - 1)
        strFolderPath = Left(.SelectedItems(1), InStrRev(.SelectedItems(1), Sep))
        For i = 0 To .SelectedItems.Count - 1
            selFiles(i) = .SelectedItems(i + 1)
        Next
    End With
    For i = 0 To UBound(selFiles)
        Set iDoc = Documents.Open(selFiles(i))
        Set rDoc = Application.CompareDocuments(OriginalDocument:=doc, RevisedDocument:=iDoc, _
        CompareFormatting:=False, CompareComments:=False)
        rDoc.SaveAs2 strFolderPath & "Compared_" & iDoc.Name
        rDoc.Close
        iDoc.Close
    Next
    Application.ScreenUpdating = True
    MsgBox "Document Compares Complete"
    Exit Sub
errHandler:
    MsgBox Err.Description, vbCritical, "Compare Docs"
    Err.Clear
    Application.ScreenUpdating = True
End Sub

相关内容