1

Я изменил диапазон формулы в файле sheet6.xml электронной таблицы, используя функцию изменения / замены регулярного выражения EditPlus, используя это регулярное выражение:

Найти: (SUM\(J.*:)(S)(.*\))

Заменить: \1\N\31

Который, например, правильно изменяет вхождения SUM(J1024:S1024) на SUM(J1024:N1024) , поскольку электронная таблица не содержит данных за пределами столбца N.

Затем я удаляю calcChain.xml и архивирую все в новый файл XLSM. Когда я загружаю файл в Excel, я получаю сообщение о том, что файл содержит ошибки и что, если я нажму OK, Excel попытается восстановить файл. После нажатия ОК Excel сообщает:

Excel смог открыть файл, исправив или удалив нечитаемый контент.

Удаленные записи: формула из /xl/worksheets/sheet6.xml

Нажмите, чтобы просмотреть исправления списка файлов журнала: (бла, бла-бла) \error123720_01.xml.

Содержимое error123720_01.xml:

<?xml version="1.0" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
    <logFileName>error123720_01.xml</logFileName>
    <summary>Errors were detected in file 'C:\Users\mbmas_000\Directory Junctions\Documents - Local\Estate Accounting-2016-05-19.Mod2.xlsm'</summary>
    <removedRecords>
        <removedRecord>Removed Records: Formula from /xl/worksheets/sheet6.xml part</removedRecord>
    </removedRecords>
</recoveryLog>

Итак, как вы можете видеть, файл "detail" вообще не содержит подробностей и не добавляет больше информации, чем оригинальное диалоговое окно.

Сама таблица, однажды открытая и отображенная в Excel, выглядит нормально. Мои модифицированные формулы там. Все выглядит хорошо; однако это гигантская электронная таблица, и кто знает, есть ли там какая-то ошибка.

Мне бы очень хотелось узнать, что делал Excel при выполнении этого "ремонта". Это зарегистрировано где-нибудь? Есть ли способ заставить Excel регистрировать это, если это не регистрируется? Я попытался извлечь XML из "восстановленного" файла и сравнить его с XML, который произвел мое изменение, но это оказалось очень сложным, так как Excel также воспользовался возможностью заменить многие избыточные формулы общими формулами (<f t="shared" ...>), значительно изменяющий исходный XML и делающий сравнение очень трудным.

0