Девараджан столкнулся с ситуацией, когда книга была повреждена, но он хотел восстановить макромодуль, связанный с книгой. (Макросы потребовали довольно много времени на разработку.)

Девараджан задался вопросом, как можно восстановить модуль.

Ответ во многом зависит от того, насколько повреждена книга на самом деле и где в ней находится повреждение. О том, как восстановить поврежденные книги, написано много; В этой связи будут интересны следующие ресурсы:

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. Возможно, со временем она появится.) Одна вещь, которую вы можете попробовать, чтобы получить свои макросы, заключается в следующем:

  1. Откройте Excel, но не проблемную книгу.

  2. Установите ручной режим расчета (Инструменты | Параметры | Вкладка Расчет | Вручную).

  3. Установите для параметра безопасности значение Высокий (Инструменты | Макрос | Безопасность | Высокий).

  4. Откройте трудную книгу. Если он откроется успешно, вы должны увидеть уведомление о том, что макросы отключены. (Если книга не открывается, вы можете также закрыть Excel; эта серия шагов не сработает.)

  5. Нажмите Alt + F11, чтобы открыть редактор VBA.

  6. В Project Explorer найдите модуль, который хотите сохранить.

  7. Щелкните правой кнопкой мыши имя модуля и выберите «Экспорт файла».

  8. Укажите имя и место для сохранения модуля.

  9. Закройте редактор VBA и выйдите из Excel.

  10. Теперь, когда модуль сохранен в отдельном файле, вы можете при желании импортировать его в другую книгу.

Другой способ восстановления — использовать OpenOffice, бесплатную альтернативу Microsoft Office. Программа для работы с электронными таблицами в OpenOffice открывает файлы Excel, и она не так чувствительна к некоторым проблемам с повреждением.

Если это по-прежнему не работает, попробуйте использовать низкоуровневый инструмент для работы с файлами, который позволяет вам читать файлы посекторно с диска, а затем позволяет видеть информацию в каждом секторе. Для большинства типов файлов это будет не очень полезно. Фактически, это не поможет вам восстановить какие-либо данные из книги Excel. Однако восстановление макросов — это совсем другая история. Они хранятся в книге в виде обычного текста ASCII, поэтому вы сможете распознать код макроса, а затем скопировать его с дискового инструмента.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (2399) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:

link: / excelribbon-Recovering_Macros_from_Corrupted_Workbooks [Восстановление макросов из поврежденных книг].