计算文档中的单词并输出为excel

我有大约10个Word文档(1,2,3等)。 我需要计算每个文档中单词的数量和拼写错误的单词的数量,并将此计数输出到Excel。

我该如何编写一个VBA脚本?

在字我知道如何找出字数和拼写错误的单词的数量,并显示作为一个Msgbox,但我不知道如何使excel通过word文档读取和显示输出。

理想的情况下,excel文件将要求我select所有的单词文档,然后生成一个表单,其中包含:

Doc Name Word_count Misspelled_count 1 30 9 2 45 8 3 50 15 . . 

在Word中,我的VBA代码显示错误和字数是:

 Sub get_wpm_errorcount() Dim ThisDoc As Document Dim ErrorCnt As Integer Dim WordCnt As Integer Set ThisDoc = ActiveDocument WordCnt = ThisDoc.Range.ComputeStatistics(wdStatisticWords) ErrorCnt = ThisDoc.SpellingErrors.Count MsgBox ("WPM = " & WordCnt & " Error Count = " & ErrorCnt) End Sub 

编辑:
我试过这个,这就是我想出来的

 Dim RunErrorCount As Integer 'Global running total of errors Dim FilesToOpen 'Global list of files to open Dim FileCount As Integer 'Global count of files to open Private Sub ReadtextFile() Dim x As Integer Dim wkbAll As Workbook Dim wkbTemp As Workbook On Error GoTo ErrHandler Application.ScreenUpdating = False FilesToOpen = Application.GetOpenFilename _ (FileFilter:="All Files (*.*),*.*", _ MultiSelect:=True, Title:="Text Files to Open") If TypeName(FilesToOpen) = "Boolean" Then MsgBox "No Files were selected" GoTo ExitHandler End If x = 1 Set wkbTemp = Workbooks.Open(Filename:=FilesToOpen(x)) Call get_wpm_errorcount Range("A1").Offset(FileCount + 1, 0).Select Selection.NumberFormat = "0.00" ActiveCell.Value = FilesToOpen(x).Name 'Output filename Range("B1").Offset(FileCount + 1, i).Select Selection.NumberFormat = "0.00" ActiveCell.Value = WordCount 'Output total count Range("C1").Offset(FileCount + 1, i).Select Selection.NumberFormat = "0.00" ActiveCell.Value = ErrorCount 'Output total count x = x + 1 FileCount = UBound(FilesToOpen) End Sub Sub get_wpm_errorcount(ThisDoc As Object) Dim ErrorCnt As Integer Dim WordCnt As Integer WordCnt = ThisDoc.Range.ComputeStatistics(wdStatisticWords) ErrorCnt = ThisDoc.SpellingErrors.Count End Sub 

我究竟做错了什么???

应该很容易。 根据需要修改。

你需要你的Excel打开(然后控制)Word。 这被称为“绑定”。 下面的示例将Word绑定到Excel:

 Option Explicit 'NOTE: REQUIRES REFERENCE TO MS WORD Sub main() Dim wordApp as Word.Application Dim wordDoc as Word.Document Dim fd As FileDialog Dim listFiles As Variant Dim i As Long 'Display the file dialog to allow the user to select file(s) Set fd = Application.FileDialog(msoFileDialogFilePicker) fd.AllowMultiSelect = True fd.ButtonName = "Select Files to Process" fd.Show 'Create Word Application only if needed: If fd.SelectedItems.Count > 0 Then Set wordApp = CreateObject("Word.Application") 'Then iterate th selected items and open them in Word: For i = 1 to fd.SelectedItems.Count Set wordDoc = wordApp.Documents.Open(fd.SelectedItems(i)) 'Send the document object AND the integer i to the other function ' which will read the document and print results to Excel spreadsheet Call get_wpm_errorcount(wordDoc, i) wordDoc.Close Next Set wordApp = Nothing End Sub Sub get_wpm_errorcount(ThisDoc As Object, itemNumber as Integer) Dim ErrorCnt As Integer Dim WordCnt As Integer WordCnt = ThisDoc.Range.ComputeStatistics(wdStatisticWords) ErrorCnt = ThisDoc.SpellingErrors.Count Range("A1").Offset(itemNumber, 0).Value = WordCnt Range("B1").Offset(itemNumber, 0).Value = ErrorCnt End Sub