
EditPlus의 정규식 변경/바꾸기 기능을 사용하여 다음 정규식을 사용하여 스프레드시트의 sheet6.xml 파일 내에서 수식 범위를 수정했습니다.
찾다:(SUM\(J.*:)(S)(.*\))
바꾸다:\1\N\31
예를 들어, 스프레드시트에는 N열 이외의 데이터가 없기 때문에 SUM(J1024:S1024)
의 발생을 올바르게 변경합니다.SUM(J1024:N1024)
그런 다음 모든 항목을 삭제 calcChain.xml
하고 새 XLSM 파일로 압축합니다. Excel에서 파일을 로드할 때 파일에 오류가 포함되어 있으며 확인을 클릭하면 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>
따라서 보시다시피 "세부 사항" 파일에는 세부 정보가 전혀 포함되어 있지 않으며 표시된 원래 대화 상자보다 더 많은 정보를 추가하지 않습니다.
Excel에서 열고 표시한 스프레드시트 자체는 괜찮아 보입니다. 내 수정된 수식이 거기에 있습니다. 모든 것이 좋아 보입니다. 그러나 이것은 거대한 스프레드시트이므로 거기에 오류가 숨어 있는지 누가 알겠습니까?
이 "수리"를 수행할 때 Excel이 무엇을 했는지 정말 알고 싶습니다. 이것은 어디에나 기록되어 있습니까? 기록되지 않는 경우 Excel에서 기록하도록 하는 방법이 있습니까? "복구된" 파일에서 XML을 추출하고 이를 내 변경 사항으로 생성된 XML과 비교하려고 시도했지만 이는 매우 어려운 것으로 판명되었습니다. Excel도 많은 중복 수식을 공유 수식( <f t="shared" ...>
)으로 대체할 기회를 얻었기 때문입니다. 원본 XML을 크게 변경하여 비교를 매우 어렵게 만듭니다.