如何检查Word文档内容是否已更改

时间:2020-04-14 12:58:19

标签: vba ms-word

我期待有一种方法来检查文档是否已更改。

  1. 属性Activedocument.Saved是不够的,因为如果您更改某项并撤消此操作,则文档尚未更改,但是.Saved将会更改。
  2. 文档文本的校验和将不够,因为其中不包括格式更改(粗体,斜体等)。
  3. 日期/时间和文件大小将不够(因为即使不更改文档,保存命令也可以更改它)。
  4. MS Word中的
  5. 内置比较-我不能使用它,因为首先我正在处理子文档(一个主文档包含多个子文档,并且我想知道哪个子文档已更改),并且我不想创建子文档的副本,或创建新的文档对象进行比较。

我发明了从.WordOpenXML进行校验和。

在打开的主文档上,我计算校验和

For each sd in Activedocument.SubDocuments
    'calculate and remember checksum of subDocument
    ...
Next sd

在关闭主文档时

For each sd in Activedocument.SubDocuments
    'calculate and compare with previous checksum of subDocument
    ...
Next sd

但是.WordOpenXML的每个检查都返回不同的值。看起来每个调用都会生成WordOpenXML值。

可以避免这种情况吗?

Debug.Print Selection.WordOpenXML=Selection.WordOpenXML

恢复False:-)

或者您可能还有其他方法来检查文档是否已更改?

0 个答案:

没有答案
相关问题