Microsoft Office Forums

Go Back   Microsoft Office Forums > Microsoft Word > Word

LinkBack Thread Tools Display Modes
Old 04-26-2014, 10:57 AM
jsuebersax jsuebersax is offline Windows 7 32bit Office 2013
Join Date: Apr 2014
Posts: 3
jsuebersax is on a distinguished road
Default Spellchecker not replacing all instances

Hi Group,

I'm having a really screwy problem with MS Word (97, 2003 and 2010), but only with one document. The text is written in Elizabethan English (c. 1630) and has many archaic words that need to be replaced. The Word spell checker spots most of these, and supplies a modernized version as a possible replacement. However when I select "Change All" it only replaces the first instance of the word.

I've tried several versions of Word; I've removed all formatting. Nothing seems to work. However for other documents I don't seem to have this problem.

The document is only 6 pages long, but, obviously, has a huge number of 'misspelled' (archaic) words. The only explanation I can think of is that maybe some buffer is being maxed out.

Any suggestions for what might be wrong and how to fix it would be most appreciated!


Last edited by jsuebersax; 04-27-2014 at 07:57 AM. Reason: fixed typos
Reply With Quote
Old 04-26-2014, 07:22 PM
jsuebersax jsuebersax is offline Windows 7 32bit Office 2013
Join Date: Apr 2014
Posts: 3
jsuebersax is on a distinguished road
Default Re: Spellchecker not replacing all instances

Okay, I think I figured out what the problem is, although not how to solve it directly.

It seems that when you choose "Change All" in the spell-checker, the only thing it immediately changes is the present instance of the misspelled word. It remembers what you want, however, and as you proceed through the spell-checking process, each time it encounters the misspelled word again it changes it automatically. However, if you were to save the file and exit Word before spell-checking the whole document, between the point where you stopped the spell-check and the end of the document any instances of the misspelled word would remain unchanged.

This is a problem if you have a large document with hundreds of misspelled words, such that to try to spell check the whole thing in one sitting is an ordeal. You have to spell-check the entire document in one session, like it or not.

This is a nuisance! My proposed workaround is to write a VBA macro that will fix the spelling errors using repeated calls to the Replace function, based on a list of incorrect and correct spellings that I supply.

If anyone has any other suggestions, please let me know. Otherwise I'll post the macro here when it's written.

Reply With Quote
Old 04-28-2014, 05:15 PM
jsuebersax jsuebersax is offline Windows 7 32bit Office 2013
Join Date: Apr 2014
Posts: 3
jsuebersax is on a distinguished road
Default Macro to automatically replace large number of words

This is a followup to a post I made in the Word forum. I was having a problem getting the Word spell-checker to work properly in a document with a huge number of spelling errors. The issue is that if you select "Change All" in the Word spell-checker, it changes the current instance immediately, but it doesn't change later instances until the spell-checking process gets to that part of the document. Hence if you terminate the spell-checker before completing the entire document, later instances of the previously corrected word will not be corrected. (At least that's what seems to be the case.)

This macro solves the problem by bypassing the spell-checker, instead repeatedly calling the Replace function, and working with a user-supplied list of incorrectly and correctly spelled words.

This works best when you know pretty much in advance what misspellings to expect. For example, I'm using it to modernize a document written in Elizabethan English.
Sub ReplaceStrings() 
     ' ReplaceStrings Macro - Replace all instances of each of a set of target
     ' (misspelled) words with correctly spelled words. A text file suppies target
     ' and replacement words (one pair per line separated by a comma), i.e.:
     ' oldword, newword
     ' Note: manually set upper bound to number of word pairs
    Dim OldWord(1 To 328) As String 
    Dim NewWord(1 To 328) As String 
     ' Note: supply path and file name for word pair list
    Open "c:/work/list.txt" For Input As #1 
    For I = 1 To UBound(OldWord) 
        Input #1, OldWord(I), NewWord(I) 
        Selection.Find.Execute Replace:=wdReplaceAll 
        With Selection.Find 
            .Text = OldWord(I) 
            .Replacement.Text = NewWord(I) 
            .Forward = True 
            .Wrap = wdFindContinue 
            .Format = False 
            .MatchCase = False 
            .MatchWholeWord = True 
            .MatchWildcards = False 
            .MatchSoundsLike = False 
            .MatchAllWordForms = False 
        End With 
        Selection.Find.Execute Replace:=wdReplaceAll 
    Next I 
    Close (1) 
End Sub

Last edited by macropod; 04-29-2014 at 03:14 AM. Reason: Added code tags & formatting
Reply With Quote


Thread Tools
Display Modes

Similar Threads
Thread Thread Starter Forum Replies Last Post
multiple instances available? Guloluseus Project 3 01-31-2014 02:42 PM
can find and replace instances of the "enter" key? snunicycler Word 7 05-02-2013 11:54 PM
Word 2010 running multiple instances JBE Word 0 09-28-2012 06:00 PM
Email Duplicates & Multiple Instances Running trim Outlook 2 03-13-2012 11:25 AM
Spellchecker not working GR8Fandini Word 6 02-07-2010 01:12 PM

All times are GMT -7. The time now is 01:00 PM.

Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc. is not affiliated with Microsoft