多年来,Phillip的公司已经开发了成千上万的Word文档。他们最近改变了网络基础架构,为Phillip部门中的每个人使用不同的服务器和升级的计算机。当某人打开这些​​预先存在的文档之一时,它将查找旧基础结构中已存在但不再可用的模板。这意味着文档需要很长时间才能打开,此后他们可以更改错误的模板引用。如果Phillip必须打开每个旧文档,则需要花费几天甚至几天的时间,因此他想知道是否有任何方法可以更有效地更改模板引用,而无需打开每个文档。

这可能是一个真正的麻烦-几乎没有什么事情(在办公室)

而不是盯着计算机屏幕,等待某些过程完成。

发生的事情是Word认为您的模板在特定的位置,并要求Windows在该位置获取模板。

Windows会尽职尽责(并试图尝试)遵守,反复寻找该位置。每次尝试都会超时,而这次徒劳的尝试所花费的总时间非常明显。

一种解决方案是使用宏将每个文档加载到目录中并更改附加到该文档的模板。以下是此类宏的示例:

Sub BatchTemplateChange()

Dim sPathToTemplates As String     Dim sPathToDocs As String     Dim sDoc As String     Dim dDoc As Document     Dim sNewTemplate As String     Dim i As Long

On Error Resume Next     Application.ScreenUpdating = False

sNewTemplate = "normal.dotx"         'new template name     sPathToDocs = Options.DefaultFilePath(wdDocumentsPath) & "\"

sPathToTemplates = Options.DefaultFilePath(wdUserTemplatesPath) & "\"



sDoc = Dir(sPathToDocs & "*.doc")



While Len(sDoc) <> 0         Set dDoc = Documents.Open(FileName:=sPathToDocs & sDoc)

dDoc.AttachedTemplate = sPathToTemplates & sNewTemplate         dDoc.Close wdSaveChanges         sDoc = Dir         i = i + 1     Wend

Application.ScreenUpdating = True     MsgBox "Finished: " & i & " documents changed"

End Sub

请注意,宏会在默认文档位置加载每个文档,但这并不一定会加快加载速度。使用宏的好处是,您可以在不使用计算机的情况下启动它并使其运行。

在下面的文章中可以找到有关编程方法的其他想法,这些想法可能对某些读者有帮助:

http://www.edugeek.net/forums/scripts/35199-vba-script-change-word-document-template-location.html

注意:

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

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

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(11405)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。 Word的旧菜单界面在这里: