dom – Microsoft Word中的拼写错误

dom – Microsoft Word中的拼写错误,第1张

概述我正在使用Microsoft Word中的拼写错误.只有少数拼写错误,访问SpellingErrors集合会变得缓慢(至少使用For / Next或For / Each循环). 有没有办法快速进入列表(复制,复制条目,停止集合的动态性质)?我只需要一个列表,快照一下,并且不需要动态或实时. 这是我如何模拟创建和检查拼写错误: Sub GetSpellingErrors() ''# Turn 我正在使用Microsoft Word中的拼写错误.只有少数拼写错误,访问SpellingErrors集合会变得缓慢(至少使用For / Next或For / Each循环).

有没有办法快速进入列表(复制,复制条目,停止集合的动态性质)?我只需要一个列表,快照一下,并且不需要动态或实时.

解决方法 这是我如何模拟创建和检查拼写错误:

Sub GetSpellingErrors()    ''# Turn off auto-spellchecking    Application.Options.CheckSpellingAsYouType = False    ''# Set document    Dim d As document    Set d = Activedocument    ''# Insert misspelled text    d.Range.Text = "I wantedd to beet hym uup to rite some rongs."    ''# Get spelling errors    Dim spellErrs As ProofreadingErrors    Set spellErrs = d.SpellingErrors    ''# Dump spelling errors to Immediate window    For spellErr = 1 To spellErrs.Count        DeBUG.Print spellErrs(spellErr).Text    Next    ''# Turn back auto-spellchecking    Application.Options.CheckSpellingAsYouType = TrueEnd Sub

在我这边测试这个在Word 2003和Word 2010中运行得非常快.请注意,这将给你六个拼写错误,而不是四个.虽然“beet”和“rite”是英文单词,但在这句话中它们被认为是“拼写错误”.

请注意Application.Options.CheckSpellingAsYouType = False.这将关闭自动拼写错误检测(红色波浪形).这是一个应用程序范围的设置 – 不仅仅是针对单个文档 – 所以最好的做法是将其重新打开,如果这是最终用户在Word中所期望的,就像我最后所做的那样.

现在,如果在Word 2007/2010中启用了检测(这不适用于2003及更早版本),则只需读取XML中的拼写错误的单词(WordprocessingML)即可.这个解决方案设置和管理起来比较复杂,而且只有在你不使用VBA编程而是使用Open XML时才应该使用.使用linq-to-XML的简单查询就足以获得所有拼写错误的单词的IEnumerable.您可以在< w:proofErr />的每个w:type =“spellStart”和w:type =“spellEnd”属性之间转储XML的所有.Value.元件.上面生成的文档在WordprocessingML中有这一段:

<w:p w:rsIDR="00A357E4" w:rsIDRDefault="0008442E">  <w:r>    <w:t xml:space="preserve">I </w:t>  </w:r>  <w:proofErr w:type="spellStart"/>  <w:r>    <w:t>wa</w:t>  </w:r>  <w:bookmarkStart w:ID="0" w:name="_GoBack"/>  <w:bookmarkEnd w:ID="0"/>  <w:r>    <w:t>ntedd</w:t>  </w:r>  <w:proofErr w:type="spellEnd"/>  <w:r>    <w:t xml:space="preserve"> to </w:t>  </w:r>  <w:proofErr w:type="spellStart"/>  <w:r w:rsIDR="003F2F98">    <w:t>b</w:t>  </w:r>  <w:r w:rsIDR="005D3127">    <w:t>eet</w:t>  </w:r>  <w:proofErr w:type="spellEnd"/>  <w:r w:rsIDR="005D3127">    <w:t xml:space="preserve"> </w:t>  </w:r>  <w:proofErr w:type="spellStart"/>  <w:r w:rsIDR="005D3127">    <w:t>hym</w:t>  </w:r>  <w:proofErr w:type="spellEnd"/>  <w:r w:rsIDR="005D3127">    <w:t xml:space="preserve"> </w:t>  </w:r>  <w:proofErr w:type="spellStart"/>  <w:r w:rsIDR="005D3127">    <w:t>uup</w:t>  </w:r>  <w:proofErr w:type="spellEnd"/>  <w:r w:rsIDR="005D3127">    <w:t xml:space="preserve"> to </w:t>  </w:r>  <w:proofErr w:type="spellStart"/>  <w:r w:rsIDR="005D3127">    <w:t>rite</w:t>  </w:r>  <w:proofErr w:type="spellEnd"/>  <w:r w:rsIDR="005D3127">    <w:t xml:space="preserve"> some </w:t>  </w:r>  <w:proofErr w:type="spellStart"/>  <w:r w:rsIDR="005D3127">    <w:t>rongs</w:t>  </w:r>  <w:proofErr w:type="spellEnd"/>  <w:r w:rsIDR="005D3127">    <w:t xml:space="preserve">. </w:t>  </w:r></w:p>
总结

以上是内存溢出为你收集整理的dom – Microsoft Word中的拼写错误全部内容,希望文章能够帮你解决dom – Microsoft Word中的拼写错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1076918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存