Excel 2003 Workbooks.Open with CorruptLoad=xlRepairFile fails on Excel 5.0/95 file due to Chart, wit

F

Frank Jones

Workbooks.Open with CorruptLoad parameter set to xlRepairFile fails on Excel
5.0/95 file due to Chart, with Error 1004 Method 'Open' of object
'Workbooks' failed.

We have a sample Excel 5.0 (Excel 95) file that is being opened through a
Visual Basic 6.0 function on Excel 2003 COM call. The Workbooks.Open method
succeededs if CorruptLoad is set to xlNormalLoad, but it fails with Error
1004 if Corrupt Load is set to xlRepairFile.

The Excel 5.0 document has a single sheet with a Chart on it. If the file
is modified such that only the chart is removed, the Open with xlRepairFile
works. If everything else is removed from the file and the Chart remains,
the xlRepairFile Open still fails.

Any ideas on why this might be failing? Is there a limitation of Excel 2003
opening Excel 5.0 file with Charts?
Thanks for any input on this topic.







Function WorkbooksFailSafeOpen(oWorkbooks As Workbooks, strLocalInputFile As
String) As Workbook

Dim lngErrNumber As Long
Dim strErrorDescription As String

On Error Resume Next

Set WorkbooksFailSafeOpen = oWorkbooks.Open(strLocalInputFile, _
UpdateLinks:=2, _
ReadOnly:=True, _
Password:="", _
IgnoreReadOnlyRecommended:=True, _
CorruptLoad:=xlRepairFile)

lngErrNumber = Err.Number

On Error GoTo 0

' If the first open failed with Error 1004
' Method 'Open' of object Workbooks' failed
' Try the alternate Open, without xlRepairFile setting

' Note we can't seem to get the description
' "Method 'Open' of object 'Workbooks' failed"
' out of the Err.Description variable, comes out as
' "Application-defined or object-defined error"
' even though pop-up dialog displays Method 'Open'... message
' so just check against generic error number 1004

If lngErrNumber = 1004 Then
Set WorkbooksFailSafeOpen = oWorkbooks.Open(strLocalInputFile, _
UpdateLinks:=2, _
ReadOnly:=True, _
Password:="", _
IgnoreReadOnlyRecommended:=True, _
CorruptLoad:=xlNormalLoad)
End If

End Function
 
P

Peter Huang

Hi Frank,

I can not reproduce the problem on my side, can you send me a reproduce
sample with the excel 5.0(Excel 95) sample file for me to reproduce the
problem.
You may reach me by removing "online" from my Email address.
So that we can do the further troubleshooting.

Thank you for you understanding.

Best regards,

Peter Huang
Microsoft Online Partner Support

Get Secure! - www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.
 
P

Peter Huang

Hi Frank,

I am sorry for delay response.

It seems that we can also reproduce the problem by manually opening the
file on Excel 2003
1) Start Excel 2003.
2) Click File, Open and browse to the "ExcelOpen-xlRepairFileFailure.xls"
file.
3) Click the Open dropdown button and select "Open and Repair¡­"
4) Select the Repair option.
Result:

"Errors were detected in 'ExcelOpen-xlRepairFileFailure.xls', but Microsoft
Office Excel was able to open the file by making the repairs below..
Excel then reports:
"Damage to the file was so extensive that repairs were *not* possible.
Excel attempted to recover your formulas and values, but some data may have
been lost or corrupted."

Since the workbook cannot be repaired by Excel, you will get the run-time
error when you pass in the repair option to the Open method. This allows a
developer that is automating Excel to detect (by trapping the error) when a
workbook is corrupt and cannot be automatically repaired by Excel. By
Excel raising the error, the developer is allowed to trap for the error and
alert the user that this xls file is damaged and cannot be recovered. If
Excel did not raise an error in this case, the developer would not have
confidence that the workbook was opened/repaired successfully.

Did the problem persists with all your Excel 95 file with chart?

I have made a test that I was able to successfully repair a simple xl95
workbook with a chart. So I think there is something more specific to your
workbook that is causing the error.

Best regards,

Peter Huang
Microsoft Online Partner Support

Get Secure! - www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top