计算阴影词的词宏

时间:2018-03-25 17:27:27

标签: ms-word word-vba

我有一个word文件,该文件中写的一些字以不同颜色着色。我想找到颜色阴影的字数。我正在使用" Shading"单词的特征,而不是'突出显示'特征

我写了一个宏,但它不能正常工作

Sub CountAllWordsInHighlight()
  Dim objWord As Range
  Dim nHighlightedWords As Long
  Dim objDoc As Document
  Dim nh As Integer
  Application.ScreenUpdating = False
  Set objDoc = ActiveDocument

  With Selection
     .HomeKey Unit:=wdStory
     With Selection.Find
          .Highlight = True

          Do While .Execute
                   nHighlightedWords = nHighlightedWords + Selection.Range.ComputeStatistics(wdStatisticWords)
                   Selection.Collapse wdCollapseEnd
          Loop
     End With
  End With
  MsgBox ("The total number of Colored words are" & nHighlightedWords & " .")
  Application.ScreenUpdating = True
  Set objDoc = Nothing
End Sub

1 个答案:

答案 0 :(得分:0)

您提到您正在使用“着色”功能来应用着色而不是“高光”功能。但是你的代码正在寻找突出显示的单词。这就是你的代码无效的原因。

顺便说一句,我没有看到使用Word VBA搜索着色单词的选项。

如果你真的想使用Shading并搜索它,我可以想到几个选项:

  1. 在应用着色时使用特定样式并使用单词vba搜索样式。
  2. 从单词文件中获取单词处理xml并使用xpath或open office xml搜索着色单词。但是,如果你想采用这种方法,这里的答案太宽泛了。