从 word 中提取段落到 excel

Extract paragraphs from word to excel

我正在尝试将特定段落从 word 中提取到 excel。关于“.Text”部分,我的代码有一个错误:“找不到方法或数据”。知道为什么吗?谢谢!

Sub extract()
Dim p As Object
Dim xl
Dim wb, ws, xlr
Dim a As Variant
Dim b As Variant

Set xl = CreateObject("Excel.Application")
xl.Visible = True
Set wb = xl.Workbooks.Add
Set ws = wb.Worksheets(1)
i = 1 
j = 1 
c = 1 
For Each p In ActiveDocument.Paragraphs

If Len(p) > 200 Then
Set xlr = ws.Range("b" & i)
ActiveDocument.Paragraphs(j).Range.Copy
xlr.Value = ActiveDocument.Range.Paragraphs(j).Text
Set xlr = ws.Range("a" & i)
c = j - 1
If c > 1 Then
ActiveDocument.Paragraphs(c).Range.Copy
xlr.Value = ActiveDocument.Range.Paragraphs(c).Text

End If
ws.Range("c" & i) = Date
i = i + 1
End If

j = j + 1
Next
End Sub 
  1. 确保在工具|下选项 |你有编辑器 “Require Variable Declaration”选中,如下所示。这将 自动将 Option Explicit 放在每个新模块的顶部 你创建并将阻止你创建变量而不 先声明它们。

  2. 所有变量必须以Dim name As DataType的形式声明, 否则它们默认为 Variant

    的数据类型
  3. 在同一行声明的变量必须分别指定一个数据类型,即 Dim wb As Object, ws As Object, xlr As Object。任何没有数据类型的都将默认为 Variant

    的数据类型
  4. .Text 抛出错误,因为 Range 在错误的位置。应该是ActiveDocument.Paragraphs(j).Range.Text。这是 Intellisense 会在您键入时向您显示的内容。

  5. 跨 Office 应用程序编码时使用工具 |添加相关库并避免使用 Object(又名后期绑定)的引用。这将有助于确保数据类型正确并使您的编码更容易。当您只使用 Office 库时,后期绑定没有任何优势。