엑셀파일이 손상되어 Excel의 자동 파일복구 모드가 동작하지 않아 엑셀파일을 열수 없을 경우
수동으로 엑셀파일을 복구할 수 있다. 아래의 방법대로 실행해 보자!
(적용대상: Excel 2016, Excel 2013, Excel 2010, Excel 2007)
[손상된 엑셀파일 수동 복구]
1.엑셀을 실행시킨후 열기(열기 및 복구)텝을 선택하여 열기를 해본다.
▷엑셀 2002버전 이상이면 열기텝의 삼각형 모양을 클릭하여 열기 및 복구로 엑셀파일 복구를 시도해 본다.
▷엑셀파일의 데이터를 최대한 많이 복구하려면 복구를 클릭.
▷복구 실패시 문서의 값과 수식만 추출하려면 데이터 추출을 클릭.
[손상된 엑셀파일에서 데이터 복구]
※ 디스크 오류나 네트워크 오류로 인해 엑셀파일을 열 수 없는 경우가 있으므로 복구 시도를 해보기 전
엑셀파일을 다른 하드 드라이브로 복사 이동하여 데이터 복구를 시도해 본다.
1. 마지막으로 저장한 버전으로 되돌리기
▷엑셀파일을 편집하고 변경내용을 저장하기 전에 엑셀파일이 손상될 경우 마지막 버전으로 되돌려 엑셀파일을 복구한다.
▷파일 - 정보 - 통합문서관리 - 저장하지 않은 통합문서 복구 - 파일을 열어서 다른이름으로 저장.
( 파일 -열기 - 찾아보기로 파일을 찾을때 해당 파일을 더블 클릭하여 열기를 해도 마지막 파일이 열림)
2. SYLK(Symbolic Link) 형식으로 통합문서 저장
▷SYLK형식으로 엑셀파일을 저장하면 손상된 요소를 필터링 할 수 있다. (단, 현재 시트만 저장됨)
▷SYLK 형식으로 저장하면 .slk 파일로 저장된다. 새로 열어서 다른이름으로 엑셀통합문서로 저장한다.
(HTML 형식으로 저장해도 필터링이 가능하다)
3. 엑셀에서 계산 옵션을 [수동]으로 설정 후 열어본다.
▷엑셀파일 계산설정을 자동에서 수동으로 변경하면 엑셀이 열릴 수 있다.


▷ 새파일을 열고 옵션 - 수식 - 계산옵션을 수동으로 설정후 해당파일을 열어본다.
4. Word 또는 워드패드에서 엑셀파일을 열어본다.
▷엑셀파일을 워드나 워드패드에서 열 경우 셀 수식은 복구할 수 없고 수식결과만 복구된다.
5. 엑셀 뷰어에서 파일을 열어본다.
▷Microsoft Excel Viewer 가 설치되어 있다면 뷰어에서 엑셀파일을 열고 셀을 복사하여 새 통합문서에
붙여넣어본다. 단 모듈, 대화상자, 차트, 매크로는 복사할 수 없으며 셀 수식도 마찬가지.
▷차트가 손상된 파일에 연결된 경우 매크로를 사용하여 데이터를 추출한다.
아래 매크로 코드를 복사한 후 모듈 시트에 붙여 넣는다.
Sub GetChartValues()
Dim NumberOfRows As Integer
Dim X As Object
Counter = 2
' Calculate the number of rows of data.
NumberOfRows = UBound(ActiveChart.SeriesCollection(1).Values)
Worksheets("ChartData").Cells(1, 1) = "X Values"
' Write x-axis values to worksheet.
With Worksheets("ChartData")
.Range(.Cells(2, 1), _
.Cells(NumberOfRows + 1, 1)) = _
Application.Transpose(ActiveChart.SeriesCollection(1).XValues)
End With
' Loop through all series in the chart and write their values to
' the worksheet.
For Each X In ActiveChart.SeriesCollection
Worksheets("ChartData").Cells(1, Counter) = X.Name
With Worksheets("ChartData")
.Range(.Cells(2, Counter), _
.Cells(NumberOfRows + 1, Counter)) = _
Application.Transpose(X.Values)
End With
Counter = Counter + 1
Next
End Sub
▷새 워크시트를 통합문서에 삽입하고 이름을 ChartData로 바꾼다.
▷원본 데이터 값을 추출할 차트를 선택한다.
▷GetChartValues 매크로를 실행한다.( 차트의 데이터가 ChartData 워크시트에 삽입된다)