엑셀 사용중에 스타일(서식)이 너무 많은 오류가 발생하였다.
스타일이 적용이 안되어서 문제였는데..
스타일을 모두 초기화하는 방법이 다음과 같다.
1. xlsx 파일을 확장자를 직접 zip 확장자로 변경한다. (파일이름.xlsx -> 파일이름.zip)
만일 xls 파일이면 파일을 오픈한 후 xlsx로 저장하여 작업한다.
2. Zip 파일을 더블 클릭하여 연다.
3. [xl] 폴더에 있는 [styles.xml]파일을 삭제한다.
4. 현재 열려 있는 창을 닫은 후 파일이름.zip을 파일이름.xlsx로 변경한다.
5. 파일을 열면 복구 및 오류 창이 나타나는데 확인 또는 닫기 버튼을 누른다.
6. 파일을 다른 이름으로 저장한다.
아래에 있는 내용을 다시 정리한 것입니다.
이것대문에 고생했는데.. 다시 한 번 감사합니다..
출처: http://blog.naver.com/PostView.nhn?blogId=zzizzix21&logNo=30107341954
[문의 내용]
windows update 이 후 excel 2007에서 제공하는 서식을 사용한 xls은 모두 손상되어 표시되는 문제가 발생하며 시스템 복원 후 이전 시점으로 되돌아 갈 경우 문제가 발생하지 않는다.
[원인]
Excel 파일에 적용되어 있는 셀 스타일이 손상되어 파일에 문제가 있을 수 있습니다. 현재는 파일을 열거나 편집할 때 문제가 발생하지 않지만 추후 파일이 크게 손상되어 열 수 없는 경우가 발생될 수 있기 때문에 이러한 부분을 미연에 방지하고자 2011-4-12에 배포된 excel 관련 보안 업데이트 kb2464583를 설치할 경우 이미 손상된 셀 스타일을 모두 삭제한 상태로 파일이 열리게 되는 것으로 추정됩니다.
kb2464583 update 관련 문서를 참고합니다.
http://www.microsoft.com/korea/technet/security/bulletin/ms10-080.mspx
[해결 방법]
kb2464583를 설치하면 이와 같이 손상된 셀 스타일이 포함된 파일이 셀 스타일 삭제가 된 상태로 열릴 수 있기 때문에 손상된 셀 스타일이 포함된 excel파일을 모두 복구 한 후update를 진행하도록 합니다.
현재는 windows update를 사용하지 않음으로 하여 update를 차단한 상태이며 문제가 있을 수 있는 파일은 모두 점검하여 복구 후 update를 하시기 바랍니다.
복구 작업을 할 경우 원본 파일에는 문제가 없도록 반드시 복사된 파일을 이용하여 복구합니다.
복구 방법은 2가지 이며 이 방법 중 원하시는 방법을 적용하시기 바랍니다. 각각의 방법은 복구 후 문제가 발생할 수 있는 가능성에 차이가 있습니다.
방법1.(추천)
이 방법의 경우 손상된 셀 스타일을 모두 삭제하는 방법이기 때문에 복구 후 문제가 다시 발생할 가능성이 적습니다. 대신 스타일 파일 자체를 제거하기 때문에 일부 적용된 스타일이 변경될 수 있어 복구 후 다시 스타일 일부를 적용해야 할 수 있습니다. 단 이 작업의 경우 파일 확장자가 xlsx일 경우에만 가능합니다. 만약 xls 확장자일 경우 다른 이름으로 저장하여 xlsx로 변경 후 진행합니다.
1. xlsx파일 확장자를 수동으로 직접 [test.xlsx]를 [test.zip]와 같이 zip파일 확장자로 변경합니다.
2. Zip을 더블 클릭하여 열기를 합니다.
3. [xl]폴더에 있는 [styles.xml]파일을 삭제합니다.
4. 다시 확장자를 [xlsx]로 변경합니다.
5. 파일을 더블 클릭하여 열기합니다. 복구 및 오류 창이 나타나면 확인 또는 닫기 버튼을 눌러 excel파일을 열기합니다.
6. 파일을 다른 이름으로 저장합니다.
7. 저장 후 excel 파일 사용시 문제가 없는지 확인 합니다.
방법2.
이 방법의 경우 손상된 셀 스타일을 VBA로 삭제하는 방법입니다. 일부 손상이 심각하게 진행된 스타일은 삭제가 되지 않을 수 있기 때문에 복구 후 문제가 발생할 소지가 남습니다. 단 스타일만 삭제하는 방법이기 때문에 복구 후 특별히 편집할 필요는 없습니다.
1. 문제가 되는 excel 파일을 열기 합니다.
2. 키보드의 [Alt + F11]을 눌러 VB창을 열기합니다.
3. [삽입 – 모듈]을 클릭합니다.
4. 아래 붉은색 텍스트를 모두 복사하여 모듈 창에 붙여 넣기 합니다.
Sub RebuildDefaultStyles()
'The purpose of this macro is to remove all styles in the active
'workbook and rebuild the default styles. "Normal" cannot be
'deleted. Therefore the macro does not attempt to delete it.
'It rebuilds the default styles by merging them from a new workbook.
'Dimension variables.
Dim MyBook As Workbook
Dim tempBook As Workbook
Dim CurStyle As Style
On Error Resume Next '//오류가 발생하도 무시하고 계속 진행
'Set MyBook to the active workbook.
Set MyBook = ActiveWorkbook
'Delete all the styles in the workbook.
For Each CurStyle In ActiveWorkbook.Styles
If Not (CurStyle.BuiltIn) Then CurStyle.Delete '//기본 스타일이 아닐 경우에만 삭제
Next CurStyle
'Open a new workbook.
Set tempBook = Workbooks.Add
'Disable alerts so you may merge changes to the Normal style
'from the new workbook.
Application.DisplayAlerts = False
'Merge styles from the new workbook into the existing workbook.
MyBook.Styles.Merge Workbook:=tempBook
'Enable alerts.
Application.DisplayAlerts = True
'Close the new workbook.
tempBook.Close
End Sub
5. 붙여 넣기가 끝나면 F5번키를 한번 누릅니다.
6. 실행이 끝나면 프로젝트 탐색기 창에서 [모듈]을 클릭하고 마우스 오른쪽을 누릅니다.
7. 모듈 삭제를 클릭합니다. (내보내기를 하지 않고 삭제합니다.)진행이 끝났다면 VB창을 닫습니다.
8. Excel 파일을 다른 이름으로 저장하여 다시 열기 합니다.
9. 일부 삭제가 되지 않았던 스타일은 직접 수동으로 제거합니다.
10. 파일 사용시 문제가 되는지 확인합니다.
팁 : 셀스타일 삭제 후 파일의 셀서식(선 등)이 모두 삭제 되므로 서석을 다시 작성해야 하는 번거로움이 있습니다. 이런 경우 엑셀2007의 서식복사를 하여 각 시트마다 붙여넣기를 하면 됩니다. 서식복사의 경우 모두선택 -> 서식복사를 하여 수정한 파일의 해당 시트에 그대로 모두선택를 클릭하면 서식복사가 완료됩니다.
[추가 정보]
셀 서식이 너무 많습니다."라는 오류가 발생하면서 파일이 열리지 않는다
http://support.microsoft.com/default.aspx?scid=kb;ko;601085
Excel 2002 및 Excel 2003의 손상된 통합 문서에서 데이터를 복구하는 방법
http://support.microsoft.com/kb/820741/ko
Excel에서 파일 손상을 방지하는 방법
http://support.microsoft.com/kb/149235/ko
특정 파일이 열리지 않는 원인의 경우 다음과 같은 상황에서 발생할 수 있습니다.
-컴퓨터를 다시 시작하거나 종료하기 전에 Windows를 종료합니다.
-라디오, 팩스, 기계, 텔레비전, 스테레오, 스피커 등의 전자파 방출 기기를 컴퓨터에서 떨어진 곳으로 옮깁니다.
-컴퓨터 모니터 위에 플로피 디스크를 두지 않습니다. 컴퓨터 모니터에서 전자파가 방출됩니다.
-바이러스가 있는지 컴퓨터를 정기적으로 검색합니다.
-디스크에 먼지가 쌓이지 않도록 디스크가 들어 있던 상자와 같은 디스크 저장함에 플로피 디스크를 보관합니다.
-컴퓨터 주위에 먼지가 쌓이지 않도록 합니다.
-web으로 파일을 등록할 경우 네트워크에 문제가 발생하면 손상되어 등록되거나 받기 시 문제가 될 수 있습니다.
-위와 같이 손상된 excel 파일의 내용을 복사하여 사용하는 문서에 붙여 넣기 했을 경우 문제가 될 수 있습니다.