파일 오픈시 통합 문서의 내용을 복구하겠냐는 메세지가 뜨는 경우
프로그램 테스트 진행중 정상으로 확인했던 파일이
닫고 다시 열었을 때 아래와 같은 메세지가 나오는 경우가 있다.
'someFileName.xlsm'의 내용에 문제가 있습니다. 이 통합 문서의 내용을 최대한 복구하시겠습니까? 이 통합 문서의 원본을 신뢰하는 경우 [예]를 클릭하세요.
복구하지 않는 경우에는 해당 파일을 열어볼 수 없으므로, "예"를 눌러 복구를 실행하게 된다.
복구후에는 파일이 열리는데, 손상된 시트의 스타일이 깨져보이게되고, 메세지창에서
읽을 수 없는 내용을 복구하거나 제거하여 파일을 열 수 있습니다.
복구된 요소: /xl/worksheets/sheet14.xml 요소
복구 내용이 로그된 파일: {USER}\AppData\Local\Temp\error108520_01.xml
와 같은 내용을 확인할 수 있다.
우선 로그된 파일을 클릭하여 어떤 부분이 손상되었는지 확인가능하다.
다양한 사유가 있겠지만 그 중 확인되었던 사례를 확인해본다.
- 셀의 데이터 유효성 검사
프로그램 작성중 데이터 유효성 검사 중 목록으로 제한하여, 선택할 수 있게끔 구현을 많이 하는데
원본의 문자열이 너무 길 때는 workbook 로드시 xml에서 에러가 발생한다. (사실 저장할 때 잘못저장이 되는 것 같다.)
대략 255자를 초과하면 제대로 인식되지 않는 것 같다. 하지만 데이터의 양이 상당한 경우에는 어떻게 해결해야 하는 것일까?
해결방법 : 수식->이름관리자 기능을 이용하여 named 된 Range를 구성하자.
예를 들어 ForDrop이라는 시트를 생성 후
A1 셀에 "first", A2 셀에 "second" ... A100까지 값을 넣고, 해당 A1:A100 범위를 forDrop1이라고 명명하는 것이다.
그 후 유효성 검사가 필요한 셀에서 원본(S)의 값으로 =forDrop1 으로 설정하면 된다.
2. 다운로드 받은 콘텐츠는 본인(본인회사)만 사용할 수 있습니다.
3. 다른 사람과 공유하거나 원본 또는 수정 후 무단전제,무단배포,무단판매,무단 공유할 수 없습니다.
4. 웹상에서 배포는 상업,비상업적 목적을 불문하고, 손해배상등 가중처벌됩니다.