Devarajan遇到工作簿损坏的情况,但是他想恢复与该工作簿关联的宏模块。 (宏代表了相当多的开发时间。)

Devarajan想知道如何恢复该模块。

答案在很大程度上取决于工作簿的实际损坏程度以及损坏在工作簿中的位置。关于如何恢复损坏的工作簿的文章很多。在这方面,以下资源将是您感兴趣的:

http://support.microsoft.com/kb/142117 (for Excel 97)

http://support.microsoft.com/kb/179871 (for Excel 2000)

http://support.microsoft.com/kb/820741 (for Excel 2002 and 2003)

http://www.jkp-ads.com/Articles/CorruptFiles.asp

这些页面中的大多数专门用于恢复数据,而不是恢复与工作簿关联的模块中的宏。 (有趣的是,Microsoft知识库中没有任何有关从损坏的Excel 2007工作簿中恢复数据的文章。随着时间的流逝,也许还会有一篇。)为了获取宏,您可能要尝试的一件事是:

。打开Excel,但不打开问题工作簿。

。将计算模式设置为手动(工具|选项|计算选项卡|手动)。

。将安全性设置设置为高(工具|宏|安全性|高)。

。打开麻烦的工作簿。如果成功打开,您应该会看到一个宏被禁用的通知。 (如果工作簿没有打开,那么您最好关闭Excel;这一系列步骤将不起作用。)

。按Alt + F11以显示VBA编辑器。

。在项目资源管理器中,找到要保存的模块。

。右键单击模块名称,然后选择“导出文件”。

。提供保存模块的名称和位置。

。关闭VBA编辑器,然后退出Excel。

。将模块保存在自己的文件中后,您现在可以根据需要将其导入到另一个工作簿中。

尝试恢复的另一种方法是使用Microsoft Office的免费替代品OpenOffice。 OpenOffice中的电子表格程序将打开Excel文件,并且对某些损坏问题不那么敏感。

如果仍然不能解决问题,请尝试使用低级文件操作工具,该工具可让您从磁盘逐个扇区地读取文件,然后让您查看每个扇区中的信息。对于大多数类型的文件,这不会很有帮助。实际上,它不会帮助您从Excel工作簿中恢复任何数据。但是,恢复宏是另一回事。它们以纯ASCII文本存储在工作簿中,因此您应该能够识别宏代码,然后从磁盘工具中将其复制。

注意:

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

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2399)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: