View Single Post
 
Old 08-30-2022, 11:50 PM
macropod's Avatar
macropod macropod is offline Windows 10 Office 2016
Administrator
 
Join Date: Dec 2010
Location: Canberra, Australia
Posts: 22,467
macropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond repute
Default

It's possible the document has acquired some of corruption. Corrupt documents can often be 'repaired' by inserting a new, empty, paragraph at the very end, copying everything except that new paragraph to a new document based on the same template (headers & footers may need to be copied separately), closing the old document and saving the new one over it. With a mailmerge main document, you'd also need to re-connect to the data source and re-apply any filtering.

Similarly, corrupt tables (which the above process won't repair) can often be 'repaired' by:
• converting the tables to text and back again;
• saving the document in RTF format, closing the document then re-opening it and re-saving in the doc(x) format; or
• cutting & pasting them to another document that you save the document in RTF format, which you then close then re-open before copying them back to the source document – which the macro below automates; or

Do note that some forms of table corruption can only be repaired by the first method.

See also: How to troubleshoot damaged documents in Word - Office | Microsoft Docs

A basic 'table repair' macro is:
Code:
Sub TableRepair()
'Macro to repair damaged tables by saving each table in an RTF-format file, then
' reinserting the table from the RTF-format file into the source document.
Application.ScreenUpdating = False
Dim Rng As Range, i As Long, RTFDoc As Document, strPath As String
With ActiveDocument
  strPath = .Path & "\"
  For i = .Tables.Count To 1 Step -1
    Set Rng = .Tables(i).Range
    Set RTFDoc = Documents.Add(Visible:=False)
    With RTFDoc
      .Range.FormattedText = Rng.FormattedText
      .SaveAs2 FileName:="strPath & RTFDoc.RTF", Fileformat:=wdFormatRTF, AddToRecentFiles:=False
      .Close
    End With
    Set RTFDoc = Documents.Open(FileName:="strPath & RTFDoc.RTF", AddToRecentFiles:=False, Visible:=False)
    Rng.Tables(1).Delete
    With RTFDoc
      Rng.FormattedText = .Tables(1).Range.FormattedText
      .Close
    End With
    Kill "strPath & RTFDoc.RTF"
  Next
End With
Set Rng = Nothing: Set RTFDoc = Nothing
Application.ScreenUpdating = True
End Sub
__________________
Cheers,
Paul Edstein
[Fmr MS MVP - Word]
Reply With Quote