最近两次,我的电脑在我打开 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 专家编写的页面。
如何使用宏
看:
从论坛或网站安装宏的说明作者:Graham Mayor,MVP
安装/使用 VBA 程序(宏)作者:Greg Maxey,MVP
您将需要将宏放置在常规模板中。它可以位于单独的模块中。
该宏的名称是“NormalBackup”。
如果您在 Word 内部显示宏列表,则可以按字母顺序找到它。Alt+F8将显示宏列表。(可能Fn+Alt+F8。在 Mac 上选择代替Alt。)