Excel Worksheet and backups suddenly get Unreadable Content Message

Anonymous
2010-04-20T15:54:27+00:00

I have a 400 line Excel 2007 single worksheet spreadsheet.

Each row has a Comment inserted in one of the cells. The Comment has been formatted as follows: "Size" has been adjusted, "Colors and Lines" has been adjusted by choosing "Color", "Fill Effects", "Picture", "Select Picture" and a .jpg file from a certain folder is selected.

The result is that when I hover over this cell in any given row, the .jpg file that was placed in the Comment appears.  There are other simple text comments in several other cells in the worksheet.

This all was working fine for me for several months, and I was making backups just to be safe.

Suddenly, I started getting "Excel found unreadable content in..."  and it offered me to "recover the contents of this workbook". When I choose to recover, I get my entire worksheet back without any comments (ones with .jpgs and ones without), and I am told "Excel was able to open the file by repairing or removing the unreadable content".

I also get a chance to view the "log file" and this is its contents:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

**-** <recoveryLog xmlns="**http://schemas.openxmlformats.org/spreadsheetml/2006/main**">


<logFileName>error053200_01.xml</logFileName>


<summary>Errors were detected in file 'C:\Users\Bruce Kay\Desktop\Documents\DOCUMENTS ON iPhone\All Casino Chip Collection.xlsx'</summary>

**-** <removedParts summary="Following is a list of removed parts:">


<removedPart>Removed Part: /xl/drawings/vmlDrawing1.vml part. (Drawing shape)</removedPart>


</removedParts>


</recoveryLog>

The same thing happens with all of my backups of this sheet, and those were backups of working versions of this sheet.

This is all unbelievably frustrating.

Does anyone think this was due to an automatic update by Microsoft?

Do you have any suggestions for recovery?

Thanks

Microsoft 365 and Office | Excel | For home | Windows

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments

55 answers

Sort by: Most helpful
  1. Anonymous
    2017-01-30T09:34:34+00:00

    Simply amazing! I have 27 sheets, all with picture comments, and most with well over 100 records each. This little tidbit fixed every one in seconds! Needless to say, I'll keep this little script handy from now on. I can't even imagine how long it would have taken to edit each one...

    Hopefully this will get taken care of seeing as how it's been happening, apparently, for well over 2 years.

    Thank you!

    Thanks dlauzon that was exactly what I needed. I created a vbs to clean up my VML file since it was pretty extensive, and here it is in case it helps anyone else:

    ' drag and drop the .vml file onto this script, new file is saved to the same location with a Fixed_ prefix

    ' bring in drag and dropped file

    Set objArgs = WScript.Arguments

    Set oFSO = CreateObject("Scripting.FileSystemObject")

    Set oFSO2 = CreateObject("Scripting.FileSystemObject")

    sFile = objArgs(0)

    Set fileinfo = oFSO.GetFile(sFile)

    ' create new file

    sFile2 = fileinfo.parentFolder & "\Fixed_" & fileInfo.name

    If oFSO.FileExists(sFile) Then

     Set oFile2 = oFSO2.CreateTextFile(sFile2)

     Set oFile = oFSO.OpenTextFile(sFile, 1)

      Do While Not oFile.AtEndOfStream

       ' read through input file one line at a time

       sText = oFile.ReadLine

       IStartPos = 0

       iStartPos = InStr(sText, "o:relid=")

       ' if an o:relid is found we do special processing

       If iStartPos > 0 Then

        ' keep appending lines from the input file until we reach o:title

        iTitlePos = InStr(sText, "o:title=")

        While iTitlePos = 0

         sText = sText & oFile.ReadLine

         iTitlePos = InStr(sText, "o:title=")

        Wend

      

        ' find the LAST o:relid if there are more than one

        iNextPos = InStrRev(sText, "o:relid=")

        If iNextPos > 0 and iNextPos > iStartPos Then

         ' this is the last o:relid

         sItem = Mid(sText, iNextPos, iTitlePos - iNextPos)

         ' replace the multiple o:relid with only the last one

         sText = Left(sText, iStartPos - 1) & sItem & Mid(sText, iTitlePos)

        End If

       End If

       oFile2.WriteLine(sText)

      Loop

     oFile.Close

     WScript.Echo "Done"

    End If

    Was this answer helpful?

    0 comments No comments
  2. Anonymous
    2016-09-27T19:15:14+00:00

    I've got this prob too with embedded photo in cell comment (Office Plus 2010 Excel). Something happens, the file is unreadable, recovery and then comments with photo are removed.  I tried the OpenOffice routine and got some photos back.  I want to try and run this, but do not know how to do it.  Any baby step instructions are greatly appreciated!! Thanks!

    Was this answer helpful?

    0 comments No comments
  3. Anonymous
    2016-05-03T14:55:42+00:00

    Thanks dlauzon that was exactly what I needed. I created a vbs to clean up my VML file since it was pretty extensive, and here it is in case it helps anyone else:

    ' drag and drop the .vml file onto this script, new file is saved to the same location with a Fixed_ prefix

    ' bring in drag and dropped file

    Set objArgs = WScript.Arguments

    Set oFSO = CreateObject("Scripting.FileSystemObject")

    Set oFSO2 = CreateObject("Scripting.FileSystemObject")

    sFile = objArgs(0)

    Set fileinfo = oFSO.GetFile(sFile)

    ' create new file

    sFile2 = fileinfo.parentFolder & "\Fixed_" & fileInfo.name

    If oFSO.FileExists(sFile) Then

     Set oFile2 = oFSO2.CreateTextFile(sFile2)

     Set oFile = oFSO.OpenTextFile(sFile, 1)

      Do While Not oFile.AtEndOfStream

       ' read through input file one line at a time

       sText = oFile.ReadLine

       IStartPos = 0

       iStartPos = InStr(sText, "o:relid=")

       ' if an o:relid is found we do special processing

       If iStartPos > 0 Then

        ' keep appending lines from the input file until we reach o:title

        iTitlePos = InStr(sText, "o:title=")

        While iTitlePos = 0

         sText = sText & oFile.ReadLine

         iTitlePos = InStr(sText, "o:title=")

        Wend

      

        ' find the LAST o:relid if there are more than one

        iNextPos = InStrRev(sText, "o:relid=")

        If iNextPos > 0 and iNextPos > iStartPos Then

         ' this is the last o:relid

         sItem = Mid(sText, iNextPos, iTitlePos - iNextPos)

         ' replace the multiple o:relid with only the last one

         sText = Left(sText, iStartPos - 1) & sItem & Mid(sText, iTitlePos)

        End If

       End If

       oFile2.WriteLine(sText)

      Loop

     oFile.Close

     WScript.Echo "Done"

    End If

    OMG!  Thank you for writing/posting this vbs.  I can't tell you how much work this saved me.  Awesome.

    Was this answer helpful?

    0 comments No comments
  4. Anonymous
    2016-02-02T05:48:50+00:00

    Easy solution that has worked for me many times with this unreadable content error.

    Open the file in OpenOffice calc.

    Save as a new name and then open it in Excel.

    Often its back to normal.

    Was this answer helpful?

    0 comments No comments
  5. Anonymous
    2015-12-13T14:15:09+00:00

    Hi AceGreen

    did it work?

    I have to deal with this theme again just in this week because of an other problems in my repair-procedure. I tried again and found out, that reproducable a sheet gets corrupt, if you delete a line with a comment (not every line, but special ones... ) In my case the line was the last, but the comment number was not the last.  The comments seem to be numbered automatically after their creation.

    I found out, that the picture-renaming-routine I posted before was not working in this case.

    In my bigger repair-procedure (which does much more) I isolated that one repair was sufficient to stop corrupting my testfile.

    In this procedure I change the top position of the comment shape. It is not enough to set shape.name = shape.name (I though maybe any writing into the comments may repair them, it does not. ) But this one seems to work (again in the Workbook_close event)

    If you try this, I would be glad for a comment (working/not working).

    Thx Thomas

        Dim objcomment As Comment

        ' run thru all comments

        For Each objcomment In ActiveSheet.Comments

            With objcomment.shape

                With .Shape

                    .top = objcomment.Parent.top

                End With

                .Visible = False

            End With

        Next

    The comments loose their top position, if you make them visible by code. e.g.

    ActiveSheet.Cells(ActiveCell.Row, kommentarspalte).Comment.Visible = True

    so my repair function is necessary anyway. The position onmouseOver is ok.

    Was this answer helpful?

    0 comments No comments