Zmodyfikowałem zakres formuły w pliku arkusz6.xml arkusza kalkulacyjnego, używając funkcji zmiany / zamiany wyrażeń regularnych w EditPlus, używając tego wyrażenia regularnego:

Odnaleźć: (SUM\(J.*:)(S)(.*\))

Zastąpić: \1\N\31

Które na przykład poprawnie zmienia wystąpienie SUM(J1024:S1024)na SUM(J1024:N1024), ponieważ arkusz kalkulacyjny nie zawiera danych poza kolumną N.

Następnie calcChain.xmlusuwam i kompresuję wszystko do nowego pliku XLSM. Kiedy ładuję plik do Excela, pojawia się okno komunikatu z informacją, że plik zawiera błędy i że, jeśli kliknę OK, Excel podejmie próbę naprawy pliku. Po kliknięciu OK program Excel:

Excel był w stanie otworzyć plik, naprawiając lub usuwając nieczytelną zawartość.

Usunięte rekordy: Formuła z części /xl/worksheets/sheet6.xml

Kliknij, aby wyświetlić naprawy pliku dziennika: (bla, bla bla) \ error123720_01.xml.

Zawartość błędu 123720_01.xml to:

<?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>

Jak widać, plik „szczegółów” nie zawiera żadnych szczegółów i nie dodaje więcej informacji niż przedstawione oryginalne okno dialogowe.

Sam arkusz kalkulacyjny, po otwarciu i wyświetleniu w programie Excel, wygląda dobrze. Tam są moje zmodyfikowane formuły. Wszystko wygląda dobrze; jest to jednak gigantyczny arkusz kalkulacyjny i kto wie, czy czai się tam jakiś błąd.

Naprawdę chciałbym wiedzieć, co Excel zrobił podczas wykonywania tej „naprawy”. Czy jest to gdziekolwiek zarejestrowane? Czy istnieje sposób, aby program Excel rejestrował go, jeśli nie jest rejestrowany? Próbowałem wyodrębnić plik XML z pliku „naprawionego” i porównać go z plikiem XML utworzonym przez moją zmianę, ale okazało się to bardzo trudne, ponieważ program Excel wykorzystał również okazję do zastąpienia wielu zbędnych formuł wspólnymi formułami ( <f t="shared" ...>), znacznie zmieniając oryginalny XML i bardzo utrudniając porównanie.

mbmast
źródło