如何避免丢失 Normal.dotm?

如何避免丢失 Normal.dotm?

最近两次,我的电脑在我打开 Word 时崩溃了。重新启动时,它提示“是否要重新加载 Normal.dotm?”。我回答“确定”,但随后它提示“无法加载 normal.dotm”。然后它加载了 Normal.dotm 的全新副本,完全没有我的自定义样式和宏代码。

尽管我的文档中启用了自动保存功能,但我昨天还是手动点击了“保存”。我还在 VBA 编辑器窗口中点击了“保存”。但这些步骤并没有阻止模板消失,也没有创建备份版本。

  • 为什么模板没有被备份?
  • 有没有什么设置可以做到这一点?
  • 我可以开始将宏保存在不同的全局模板中,以便在 Normal 丢失时保存它们,但是是否有类似的方法来保存样式?

答案1

您没有义务使用 Normal.dotm 作为模板,因为 Word 会在文件损坏时重新创建该文件。

您可以使用自己的模板并可以使用任意文件名。

  • 菜单文件 > 另存为
  • 为模板输入名称并将类型设置为“Word 模板”
  • 点击保存。文件将自动存储在“自定义 Office 模板”文件夹中

要基于模板开始新文件,请单击 文件 > 新建 > 自定义并点击您的模板。

这样,您的模板就不会妨碍您工作,也不会造成任何影响。

参考 : 创建模板

答案2

可能有备份。如果没有,这里介绍如何使用宏进行备份。

首先,看看你的用户模板文件夹查找名为“Normal.wbk 的备份”的文件。如果存在,请删除新的 Normal.dotm(如果存在)并重命名备份 Normal.dotm。这里是我的页面介绍了如何找到该文件夹

Normal 模板是许多用户自定义的存储库,似乎是各种问题的目标。我偶尔会运行宏来创建备份。以下是我在微软网站上的文章对此进行了深入讨论

宏如下:

  • 将备份放在与普通模板不同的文件夹中。该文件夹将被命名为“普通备份”,并将位于与您的用户模板文件夹相同的文件夹中。默认情况下,此文件夹位于: C:\Users\ user name \AppData\Roaming\Microsoft\Templates 但这可能有所不同,具体取决于您的操作系统和您自己的用户设置。请参阅:如何找到常规模板

  • 如果您的计算机使用默认设置,则备份文件夹将是: C:\Users\ user name \AppData\Roaming\Microsoft\Normal Backups

  • 如果备份文件夹不存在则创建它

  • 运行时,直接保存常规模板。如果需要,可以删除此行。它会增加宏运行所需的时间。

  • 创建常规模板的新备份,并在名称中添加日期和时间戳。此备份不会出现在“最近文件”列表中。

这是 Windows 版本的宏:

Sub NormalBackup()
 ' Run to Backup Normal template to dated backup
 ' Charles Kenyon 10 Jan 2020 
 '  https://www.addbalance.com/word/normal-backup.htm
 ' Appends date to "Normal Backup" when saving, saves in special folder, 
 '   then returns save path to current - thanks to Jay Freedman for that
 ' This code must be in the Normal template to work - not in another global

 '
 On Error Resume Next
 Dim strName As String
 Dim intLenPath As Integer ' length of path to templates folder without name of folder
 Dim strPath As String 'Holder for current path
 Dim strStorePath As String
 '
 Let intLenPath = InStrRev(Application.Options.DefaultFilePath(wdUserTemplatesPath), _
    "\")
 Let strStorePath = Left(Application.Options.DefaultFilePath(wdUserTemplatesPath), _
    intLenPath)
 Let strStorePath = strStorePath & "Normal Backups"
 '
 ' Check if folder exists, if not, create it
 If Dir(strStorePath) = vbNullString Then MkDir (strStorePath)
 '
 Let strPath = Application.Options.DefaultFilePath(wdDocumentsPath)
 Let strName = "Normal Backup"
 ' add date & Time
 Let strName = strName & " " & Format((Year(Now() + 1) Mod 100), "20##") & "-" & _
    Format((Month(Now() + 1) Mod 100), "0#") & "-" & _
    Format((Day(Now()) Mod 100), "0#") & "-" & _
    Format(Now(), "HH_mm") 'add date & time
 '
 ' Do the save
 ' MsgBox strStorePath & strName & ".dotm"
 ThisDocument.Save 'save normal template (code holder) itself
 ThisDocument.SaveAs2 FileName:=strStorePath & "\" & strName & ".dotm", Addtorecentfiles:=False
 ' Reset save path
 Let Application.Options.DefaultFilePath(wdDocumentsPath) = strPath
 '
 ' reset error message
 On Error GoTo -1
 End Sub

以上所有链接均指向我编写并控制的页面。下面两个链接指向受人尊敬的 Word 专家编写的页面。

如何使用宏

看:

您将需要将宏放置在常规模板中。它可以位于单独的模块中。

该宏的名称是“NormalBackup”。

如果您在 Word 内部显示宏列表,则可以按字母顺序找到它。Alt+F8将显示宏列表。(可能Fn+Alt+F8在 Mac 上选择代替Alt

相关内容