突出显示千位字符(Microsoft Word)
Hakan需要一个宏来计算单词文档中的字符(不带空格)并突出显示第1000个字母。创建这样的宏非常简单-您只需要依次检查文档中的所有字符,并仅计算不是空格的字符。以下是一个简单的小宏,它可以完成此操作:
Sub CountThousands1() Dim J As Long Dim X As Integer X = 0 With ActiveDocument For J = 1 To .Characters.Count If .Characters(J) <> " " Then X = X + 1 If X = 1000 Then .Characters(J).Select Selection.Range.HighlightColorIndex = wdYellow X = 0 Beep End If Next J End With End Sub
宏很简单;它检查了Characters集合,该集合包含文档中的所有单个字符。宏的问题在于它很慢-非常慢。 Word以这种方式检查单个字符并不是十分有效。 (似乎每次您引用Characters集合的成员时,Word都需要从文档开头重新检查所有字符。)
另一种方法是简单地单步浏览文档,扩展选择范围,直到得到1000个非空格字符。
Sub CountThousands2() Dim X As Integer Dim sRaw As String Dim sProc As String Selection.MoveRight Unit:=wdCharacter, Count:=1000, Extend:=wdExtend While Len(Selection) = 1000 sRaw = Selection sProc = Replace(sRaw, " ", "") X = 1000 - Len(sProc) While X > 0 Selection.MoveRight Unit:=wdCharacter, Count:=X, Extend:=wdExtend sRaw = Selection sProc = Replace(sRaw, " ", "") X = 1000 - Len(sProc) Wend Selection.Collapse Direction:=wdCollapseEnd Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Range.HighlightColorIndex = wdYellow Selection.Collapse Direction:=wdCollapseEnd Selection.MoveRight Unit:=wdCharacter, Count:=1000, Extend:=wdExtend Wend End Sub
从插入点在文档的开头开始此宏。宏然后捕获一千个字符,将该选择分配给变量(sRaw),创建一个变量,该变量将所有空格都从变量(sProc)中删除,然后计算sProc的长度。如果小于1,000,则选择范围会扩展,但会缩短很多字符,重复此过程。当所选内容包含1,000个非空格字符时,将设置突出显示,并且宏继续到下一个字符块。
注意:
如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。
_WordTips_是您进行经济有效的Microsoft Word培训的来源。
(Microsoft Word是世界上最流行的文字处理软件。)本技巧(7871)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。 Word的旧菜单界面在这里: