意外关闭了 excel vba 文件而没有保存

意外关闭了 excel vba 文件而没有保存

我正在为一个 vba 宏制作原型,有两个包含数据集的文件。一个只是数据集,另一个是包含宏的数据集。当我快要完成当天的工作时,我无意中选择了要关闭的错误文件,并在弹出窗口中选择了不保存,因为我不想更改数据集。通常,每次我测试运行宏时,它都会自动保存,但当我重新打开应该包含宏的数据集时,它不包含任何 vba 模块或宏。

我正在使用 excel 2013。有什么方法可以恢复宏吗?这对我来说就像是 3 小时的代码,我不想重做。还有什么办法可以防止这种情况再次发生?

编辑:已解决,感谢大家提供的建议。如下面的 Emily 链接所示https://stackoverflow.com/questions/46669726/forget-to-save-excel-macro提供了一个对我的情况最有帮助的解决方案,但还有其他建议,我相信在类似情况下也会有所帮助。谢谢大家。

为了进一步说明,我开始在 .xlsx 文件中编写宏,但从未以 .xlsm 格式(excel 宏文件)重新保存,这就是为什么每次我测试运行宏时模块和宏都没有自动保存的原因。类似问题的链接显示了可以在哪里找到带有模块的 .xlsx 的临时副本,这次我很幸运。

答案1

Office 2010 及更高版本

在 Office 2010 及更高版本中,您有一个内置于产品的附加选项,称为“恢复未保存的电子表格”

  • 单击左上角的文件选项卡。
  • 选择最近
  • 左下角是恢复未保存的电子表格

已保存草稿文件夹将打开。找到您的文件并双击打开。然后保存文件。

还可以在以下位置找到这些文件:

Windows 8/Windows 7/Windows Vista

C:\Users\<username>\AppData\Local\Microsoft\Office\UnsavedFiles

Windows XP

C:\Documents and Settings\<username>\Local Settings\Application Data\Microsoft\Office\UnsavedFiles

其他有用信息

如果您已经处理某个文件几个小时,并且该文档是通过复制和粘贴创建的,或者曾经剪切过整个页面或文档以粘贴到某个地方,然后将其他内容放在剪贴板上,则数据可能并未丢失。这是因为当复制任何信息时,它会被发送到名为 ~wrlxxxx.tmp 的临时文件中。因此,您可以在系统中搜索此名称的文件,然后使用相同的“拖放”技术在记事本中查看数据以恢复数据。

另一件有趣的事情是,当对需要创建临时文件的文档进行更改时,当您按下“保存”按钮时,所有临时文件将合并为一个文件,并将该文件重命名为您原来的名称。然后,您创建的原始文档将被删除。

相关内容