代码之家  ›  专栏  ›  技术社区  ›  ForEachLoop

重新检查文档的拼写是否与VBA代码不同

  •  3
  • ForEachLoop  · 技术社区  · 14 年前

    我想在添加词典后重新检查文档中的拼写。问题是以下代码(主要来自宏记录器)

    CustomDictionaries.Add FileName:="c:\test_dictionary.dic"
    
    Application.ResetIgnoreAll
    ActiveDocument.Range.SpellingChecked = False
    ActiveDocument.Range.GrammarChecked = False
    

    不会产生与2007年相同的结果 Word选项|校对|复查文档 按钮。该按钮会重新检查文档,您可以看到新添加的单词作为拼写错误被删除。代码没有任何明显的影响。

    我忽略了什么?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Richard Hair    11 年前

    我也曾为一个项目做过同样的事情,这个变通方法让我做到了:

     'spellcheck the document
     ActiveDocument.Range.LanguageID = wdFrenchHaiti
     ActiveDocument.Range.LanguageID = wdEnglishUS
    

    更改语言时,Word会重新检查拼写错误的范围。

        2
  •  1
  •   Todd Main    14 年前

    这就是这个词的工作方式。添加 CustomDictionary 不会立即触发它使用,只有几种方法可以触发它。其中一个是校对对话框(即您不必单击“重新检查文档”,只需单击“确定”即可重新检查)。另一个触发点是 手动 键入文本,然后键入分隔符(如空格或段落)。另一个触发器是拼写检查对话框。不幸的是,我看不出有什么好的选择。

    replacement 在那里)。添加自定义词典后,打开“校对”对话框,然后以编程方式单击“确定”。再说一次,我还没有真正尝试过,所以我不确定这是否会产生预期的结果。