Jerry制作了一个用于版本控制的宏,该宏询问用户是否要使用新的版本号保存文档。打开文档后,它将自动运行。但是,Jerry希望仅在用户实际更改或更改文档时才让宏运行。他想知道在实际编辑文档时是否会记录一个事件?还是那里有一个属性,用于注册文档是否已更改?

没有事件,但是有财产。您要检查的是正在处理的任何文档的Saved属性。如果该属性为True,则没有任何更改。如果该属性为False,则有未保存的更改。 (换句话说,Saved属性的True为False状态指示文档是否已保存。)

如果要在用户关闭文档时提示有关版本号,则需要使用Document_Close事件处理程序。修改事件处理程序,以便您通过以下方式检查Saved属性的状态:

Private Sub Document_Close()

If Not ActiveDocument.Saved Then         ' Check to see if version should be updated         ActiveDocument.Save     End If End Sub

当然,您需要用您的特定代码替换注释,以处理相对于版本号应出现的内容。 Save方法用于将文档保存为当前名称。如果要使用新名称保存它,则可以使用SaveAs方法。

需要记住一个警告:即使用户实际上没有在文档中进行更改,也可以将Saved属性设置为False。例如,如果文档中有字段并且这些字段会自动更新,则Saved属性将设置为False。在某些其他情况下,属性也会发生更改,但是Saved属性是确定文档是否实际更改的最准确方法。

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(13368)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。