2
我有一個單詞宏,用於統計文檔中突出顯示或未加下劃線粗體的所有文本。宏工作正常 - 雖然計數略高於「查找」功能在某些文檔上返回的結果(如果有人知道爲什麼我會很高興地發現它)。通過格式化宏有效字數
宏的問題在於,它的效率非常低,並且在長度大約爲50頁的文檔上運行時滯留在計算機上的時間並不是很多。有沒有人看到更有效的方式來編寫類似功能的宏?
Dim highlightCount
Dim boldCount
Dim wordTotal
boldCount = 0
highlightCount = 0
For Each w In ActiveDocument.Words
If w.HighlightColorIndex <> wdNoHighlight Then
highlightCount = highlightCount + 1
End If
If w.Font.Bold = True Then
If w.HighlightColorIndex = wdNoHighlight Then
If w.Font.Underline = False Then
boldCount = boldCount + 1
End If
End If
End If
Next
wordTotal = highlightCount + boldCount
MsgBox ("There are " & wordTotal & " words to be spread")
End Sub
這運行速度快得多,但它不會返回正確的結果。它計算突出顯示的文本的部分數量,而不是突出顯示的文字的數量。因此,如果突出顯示「我的名字是賬單」這個短語,那麼將這四個單詞作爲一個例子。感謝您的快速回復 - 我會再次考慮再次使用Find,因爲它效率更高。 – pavja2 2013-03-16 13:58:47
我做了一個快速編輯,似乎工作 - 它仍然關閉幾百個單詞,但它似乎在計算一些東西,並且不到1/4的時間運行。非常感謝幫忙。 'boldCount = boldCount + rngWords.Words.Count' – pavja2 2013-03-16 14:04:59
是的,您的建議很好,我將它添加到上面的代碼中。你加了兩次嗎?對於'highlightCount'和'boldCound' ... – 2013-03-16 14:32:02