沙龙收到了一个文档,其中包含许多表格。她使用Ctrl + A选择了整个文档,然后更改了文档的语言设置。但是,这不会更改表中包含的任何文本的语言设置。沙龙想知道是否有一种方法可以真正更改文档中所有文本的语言设置。

在进行一些测试时,我们发现如果您有一个包含表的文档,则在按Ctrl + A并更改语言设置时,表中的这些段落也将受到影响,就像常规段落一样。唯一没有发生这种情况的是表是否位于文档的“非正文”部分中,例如文本框,形状,页眉,页脚,尾注或脚注。在这些情况下,这些元素中的文本不受影响。

影响这些区域中每个区域的唯一方法是使用宏。例如,下面是一个简单的宏,它将遍历文档中的每个StoryRanges并更改每个段落的语言:

Sub ChangeLanguage()

Dim r As Range     Dim p As Paragraph

For Each r In ActiveDocument.StoryRanges         For Each p In r.Paragraphs             p.Range.LanguageID = wdEnglishUK         Next p     Next r End Sub

在此宏中,语言设置被设置为英国英语。如果您希望将其设置为其他语言(并且其中有很多),则可以使用此页面上列出的一种枚举:

https://msdn.microsoft.com/en-us/VBA/Word-VBA/articles/wdlanguageid-enumeration-word

对于大多数人来说,简单的宏应该可以正常工作。但是,如果您有一个更复杂的文档,则可能仍会发现某些区域未更改语言。在这种情况下,您可能会在下面的页面中找到有用的宏:

https://cybertext.wordpress.com/2011/10/14/word-macro-to-set-the-language-for-most-eleme/

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(5227)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。