Fix corrupted font in multi level list in Word

Quick context

  • In applications like Word, there are lots of global settings that deal with things like layout and appearance. This is not accomplished by embedding control characters at each relevant location in the document content, itself. Rather, the user choices are stored as centralized settings, and these are applied to the whole document programmatically based on rules.

  • The application gives you a nice graphical user interface for dealing with the settings, like the menus and setting selection tools shown in the question. However, that isn't what is stored as part of the document. The software produces that display from setting values that are stored in an efficient way with the document.

  • The settings that drive these rules are stored separately from the document content. I'll call that the document infrastructure.

  • Because the settings can be stored in compact form, a small amount of corruption can affect many different rules and many different parts of your document. However, the error symptoms can be diagnostic.

Diagnostics

There are several characteristics that point to corruption, rather than incorrect user settings that can be fixed by just entering the right value in a menu.

  • You may see multiple nonsensical problems, particularly in a related collection of settings.

  • You can't change the settings, or changing the settings doesn't stick.

  • The user interface forces you to select from preset values or enter values that comply with validation rules. So there is no way for you to manually enter non-compliant values. In this example, you see things like a 0 point font size (which can't be selected from the list). That symbol in the number format entry box isn't something you keyed in. Even more telling is if that is something you can't directly manipulate or delete. Even more telling is if it's a symbol that is not a standard keyboard character.

Fixing the corruption

  • You're dealing with a created representation of some stored values, rather than directly manipulating the document content. So you can only change things the user interface allows you to. If the user interface can't make sense of the corrupted values, you can't directly fix them.

  • The user interface may not behave logically relative to what is displayed when it is dealing with corruption.

  • You may not be seeing all of the problems. The user interface displays what it can within the limits of what it was programmed to do. Some corrupted values may be things that will show up as oddities. Others may be things that aren't, or can't be, displayed. Still others may be artifacts of something different. So there's no way to know the extent of the corruption (you don't know what you don't know).

  • The safe solution is to clear it and redo it rather than trying to fix what looks like specific displayed problems.

  • The fact that the document infrastructure is stored separately can be a benefit in the fix. If the corruption is in the infrastructure and the document content is intact, you may be able to replace the infrastructure.

    Create a new (empty) document using the same template as the corrupted one. Go into the corrupted document, select the whole document, and copy it. Paste that into the new document. If it's a humongous document, you might need to do this in several chunks rather than a single copy/paste.

    This will often give you a working document, again. Verify that all of your settings transferred to the new document. You might need to re-enter a few, but at least you will have a functioning user interface and will be able to do that.


Screenshoot from VBA

I found one solution, very simple.

  • step 1: press "Ctrl + f11" (this step is to open VBA)
  • step 2: delete the "Option Explicit" (this step is important, if you keep "Option Explicit, you will get error when hit "F5")
  • step 3: copy and paste the code here:
Sub ResetFontFormatsForLists()
For Each templ In ActiveDocument.ListTemplates

     For Each lev In templ.ListLevels

          lev.Font.Reset

     Next lev

Next templ
End Sub
  • Step 4: hit "F5" to run the code.

  • Step 5: Enjoy and smile.

I learned this from this source: https://answers.microsoft.com/en-us/msoffice/forum/all/word-2013-multilevel-list-error/c606fc3e-bc30-4590-8e4b-9bfea7312d67

enter image description here