2012-06-14 55 views
1

我有这个例程,运行良好,但它会因为它计数段落标记而混乱。我怎样才能跳过段落标记?如何避免段落标记?

 For Each wrd In ActiveDocument.Words 
      If Selection.Style = ActiveDocument.Styles("Normal") Then 
       If wrd.Font.Name <> "Arial" Or wrd.Font.Size < 9 Or wrd.Font.Size = 11 Or wrd.Font.Size > 12 _ 
       Or wrd.Font.Color <> wdColorBlack Or wrd.Font.Color <> wdColorAutomatic Or wdColorBlue Then 
        wrd.HighlightColorIndex = wdYellow 
        wordrep = wordrep + 1 
       End If 
      End If 
     Next 

回答

1

试试这个

For Each wrd In ActiveDocument.Words 
    If Selection.Style = ActiveDocument.Styles("Normal") Then 
     If wrd.Font.Name <> "Arial" Or _ 
      wrd.Font.Size < 9 Or _ 
      wrd.Font.Size = 11 Or _ 
      wrd.Font.Size > 12 _ 
      Or wrd.Font.Color <> wdColorBlack Or _ 
      wrd.Font.Color <> wdColorAutomatic Or _ 
      wrd.Font.Color <> wdColorBlue Then 
       If Asc(Left(wrd, 1)) <> 13 Then 
        wrd.HighlightColorIndex = wdYellow 
        wordrep = wordrep + 1 
       End If 
     End If 
    End If 
Next 
+0

这就像往常一样完美,Siddharth!非常感谢你! – MBlackburn

1

有什么问题你的逻辑。你是什​​么意思Or wdColorBlue Then?如预期这将无法正常工作......

如果你的意思wrd.Font.Color <> wdColorBlue:字体颜色不能黑色和蓝色在同一时间,所以wrd.Font.Color <> wdColorBlack Or wrd.Font.Color <> wdColorBlue总是是真的!因此,内部If构造的内容将始终执行。

如果你的意思是wrd.Font.Color = wdColorBlue:当字体是蓝色时,它不一定是黑色的,所以wrd.Font.Color <> wdColorBlack条件是多余的和多余的。

我不知道这是否解决了您的问题......我并不完全确定您的意思是“它会忽略段落标记”。