我有两个word文档,分别是测试的“结果”和“预期的结果”。我正在使用以下代码来比较两者并检查差异。
Sub CompareTest
Dim wrdApp
Dim revTemp
Dim file1, file2, differences
Set wrdApp = Sys.OleObject("Word.Application")
file1 = "C:\TestDocs\Site Initiation.doc"
file2 = "C:\TestDocs\Site Initiation_observer.doc"
differences = "C:\TestDocs\differences.doc"
call wrdApp.Documents.Open(file1)
call wrdApp.ActiveDocument.Compare(file2, "", 1)
Set revTemp = wrdApp.Selection.NextRevision(True)
If Not (revTemp Is Nothing) Then
wrdApp.ActiveDocument.SaveAs differences
wrdApp.Documents.Close
Call Log.Warning "Documents are not identical", "Please see the differences in " & differences
Else
Call Log.Message "Documents are identical"
End If
wrdApp.Quit False
End Sub
无论出于何种原因,对于我们这样比较的大多数 word 文档,一切正常。但是,对于我们正在比较的其中两个,我们在调用“比较”方法的行上得到“命令失败”。
我在网上搜索了 Microsoft 的库、众多博客等,没有人能给我一个具体的情况,即这段代码适用于 MOST 文档但不适用于某些场景。我尝试颠倒文档的顺序,更改文档名称和目录路径以更兼容 8.3 格式。我也尝试将每个文档与自身进行比较。
一点帮助将不胜感激。
仅供参考,这是在 TestComplete 自动化测试工具中运行的代码,因此“Sys.OleObject”和“Log”对象的细节在该工具内部。我们使用了“CreateObject”并注释掉了 Log 调用,但无济于事。