2016-09-19 72 views
0

我定期收到包含腳註的長文檔,並試圖找到使用VBA計算每個頁面上的單詞數量(包括腳註)的方法。腳註是否溢出到下一頁上並不重要,我只是包括腳註在內的字數。在Word文檔中計算單詞,包括腳印

我有正確計算在正文中單詞的數量,使用命令宏:

WordCount = ActiveDocument.Range(Start:=pos1, End:=pos2).ComputeStatistics(wdStatisticWords) 

變量POS1和POS2已設置爲頁面的第一個和最後一個字符正在計數。

然而,當我真參數添加到ComputeStatistics(wdStatisticWords,真),以IncludeFootnotesAndEndnotes,如:

WordCount = ActiveDocument.Range(Start:=pos1, End:=pos2).ComputeStatistics(wdStatisticWords, True) 

它不工作,給了一個錯誤,有太多的參數。看起來在使用Range時,IncludeFootnotesAndEndnotes參數不可用。

你如何計算範圍內腳註內的單詞?

回答

0

我認爲你需要做的是迭代到每個StoryRanges並更新計數器。這裏是一個小的例子,應該作爲一個例子,但是,您可能會需要調整它爲您的具體情況(查看有關枚舉的StoryRanges我注)

下面的代碼:

Public Sub Count_All_Words() 
    Dim Story_Ranges   As Variant: Set Story_Ranges = ActiveDocument.StoryRanges 
    Dim Story_Range   As Object 
    Dim WordCount   As Long 

    'Loop through each story range and only include the footer and Main story to the word count 
    For Each Story_Range In Story_Ranges 
     'You may need to check additional types, lookup the enumerations for StoryType here: 
     'https://msdn.microsoft.com/en-us/library/bb238219(v=office.12).aspx 
     If Story_Range.StoryType = wdMainTextStory Or Story_Range.StoryType = wdFootnoteSeparatorStory Then 
      'Add to the word count 
      WordCount = WordCount + Story_Range.ComputeStatistics(wdStatisticWords) 
     End If 
    Next 

    Debug.Print "The word count is: " & WordCount 
End Sub