【问题标题】:Compare Multiple Pairs of Docs比较多对文档
【发布时间】:2019-08-02 13:01:55
【问题描述】:

我是英语系的教授,我的作文学生经常写多篇论文草稿。我使用 Word 2010 来跟踪他们的更改。

我在另一个站点(位于 here)上发现了 VBA 代码。我创建了一个新宏。它正确提示我输入基本文件夹、新文件夹和比较文件夹,但输出为空。

我在基本文件夹和新文件夹中都有相同名称的文件,并以 .doc 格式保存。我还将 Word 中的信任中心选项设置为 1) 启用所有宏和 2) 信任对 VBA 项目对象模型的访问。

Sub CompareAllFiles()
    Dim strFolderA As String
    Dim strFolderB As String
    Dim strFolderC As String
    Dim strFileSpec As String
    Dim strFileName As String
    Dim objDocA As Word.Document
    Dim objDocB As Word.Document
    Dim objDocC As Word.Document
    strFolderA = InputBox("Enter path to base documents:")
    strFolderB = InputBox("Enter path to new documents:")
    strFolderC = InputBox("Enter path for document comparisons to be saved:")
    strFileSpec = "*.doc"
    strFileName = Dir(strFolderA & strFileSpec)
    Do While strFileName <> vbNullString
        Set objDocA = Documents.Open(strFolderA & strFileName)
        Set objDocB = Documents.Open(strFolderB & strFileName)
        Application.CompareDocuments _
            OriginalDocument:=objDocA, _
            RevisedDocument:=objDocB, _
            Destination:=wdCompareDestinationNew
        objDocA.Close
        objDocB.Close
        Set objDocC = ActiveDocument
        objDocC.SaveAs FileName:=strFolderC & strFileName
        objDocC.Close SaveChanges:=False
        strFileName = Dir
    Loop
    Set objDocA = Nothing
    Set objDocB = Nothing
End Sub

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    如果您和您的学生使用 Word 2010,那么扩展名很可能是 .docx:

    strFileSpec = "*.docx"
    

    您是否尝试过使用 VBA 调试器逐步运行代码,以查看确切的故障点是什么?有关简单介绍,请参阅here(在标题为逐步执行代码的部分下)。

    【讨论】:

    • 感谢您的建议!我很感激你的时间。 :)
    【解决方案2】:

    某种 VBA 大师帮我解决了这个问题:我需要在文件夹路径的末尾输入一个 \。如果没有最后的反斜杠,脚本无法找到文件夹,因此它不会处理任何文件。将最后的 \ 添加到所有三个文件夹路径后,代码运行完美。

    作为奖励,代码同时处理 .doc 和 .docx 文件。我以为我必须在处理之前将所有 .docx 文件转换为 .doc,但代码比这更智能。

    尤里卡!

    【讨论】:

    • 请将此标记为问题的答案(答案旁边带有勾勒的复选标记)。
    猜你喜欢
    • 2013-07-14
    • 2015-07-02
    • 2021-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多