Eu modifiquei o intervalo de uma fórmula no arquivo sheet6.xml da planilha usando o recurso de alteração / substituição da expressão regular do EditPlus, usando esta expressão regular:
Localizar: (SUM\(J.*:)(S)(.*\))
Substituir: \N
Que, por exemplo, altera corretamente as ocorrências de SUM(J1024:S1024)
para SUM(J1024:N1024)
, pois a planilha não contém dados além da coluna N.
Eu então excluo calcChain.xml
e zip tudo em um novo arquivo XLSM. Quando eu carregar o arquivo no Excel recebo uma caixa de mensagem aparecendo informando que o arquivo contém erros e que, se eu clicar em OK, o Excel tentará reparar o arquivo. Depois de clicar em OK, o Excel indica:
O Excel conseguiu abrir o arquivo reparando ou removendo o conteúdo ilegível.
Registos removidos: fórmula da parte /xl/worksheets/sheet6.xml
Clique para ver os reparos na lista de arquivos de log: (blah, blah blah) \ error123720_01.xml.
O conteúdo do erro123720_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>
Assim, como você pode ver, o arquivo "detail" não contém nenhum detalhe e não adiciona mais informações do que a caixa de diálogo original apresentada.
A própria planilha, uma vez aberta e exibida pelo Excel, parece bem. Minhas fórmulas modificadas estão lá. Tudo parece bem; No entanto, esta é uma planilha gigantesca e quem sabe se há algum erro escondido lá dentro.
Eu realmente gostaria de saber o que o Excel fez ao realizar esse "reparo". Está logado em algum lugar? Existe uma maneira de obter o Excel para registrá-lo se ele não está sendo registrado? Eu tentei extrair o XML do arquivo "reparado" e compará-lo ao XML que minha alteração produziu, mas isso provou ser muito desafiador, pois o Excel também aproveitou a oportunidade para substituir muitas das fórmulas redundantes por fórmulas compartilhadas ( <f t="shared" ...>
), alterando significativamente o XML original e dificultando uma comparação.
Tags microsoft-excel