|
各位大神,下位这段代码目的是模拟点击word文档的目录,然后查找到正文的第一个外,但以下三句代码均无法执行,有何解决办法?
Selection.MoveDown unit:=wdParagraph '//运行提示不支持
FirstTextParaNum = iParaCount(Selection.Range) '//运行提示错误参数?
FirstTextParaNum = Doc.Range(0, Selection.Paragraphs(1).Range.End).Paragraphs.Count '/运行提示不支持
代码原文:
Sub findFirstpara1()
Dim wordApp As New Word.Application, Pa As Word.Paragraph
Dim Doc As Document, Ascode&, S1$, Complaintext$, Txt$
Dim PC_before_click%, PC_after_click%
Dim GotContent As Boolean
Set ResultSht = ThisWorkbook.Sheets("Result") '//
FPath = "D:\temp\"
Set Fso = CreateObject("scripting.filesystemobject") '//
Set ff = Fso.getfolder(FPath) '//提取FPath目录下的全部文件
For Each f In ff.Files
Set Doc = wordApp.Documents.Open(FPath & f.Name) '//逐个打开每个word文件
wordApp.Visible = True
With Doc
fieldsCnt = .Fields.Count
For Each Field In .Fields
With Field
Debug.Print .Result
If GotContent = True And .Index = 2 Then
.DoClick '/点击目录中第一行
'//计算点击目录后链接到的段落的段落编号
Selection.MoveDown unit:=wdParagraph '//运行提示不支持
FirstTextParaNum = iParaCount(Selection.Range) '//运行提示错误参数?
FirstTextParaNum = Doc.Range(0, Selection.Paragraphs(1).Range.End).Paragraphs.Count '/运行提示不支持
End If
If InStr(1, .Code, " TOC \o") > 0 And Mid(.Result, 2, 1) = "1" Then GotContent = True '/判断命中目录域
End With
Next
.Close
End With
Set Doc = Nothing
Next f
Doc.Paragraphs(FirstTextParaNum).Range.Select
MsgBox ("The First Paragraph of Text is " & FirstTextParaNum & ". ")
End Sub
Function iParaCount(oRange As Range) As Integer
oRange.SetRange 0, oRange.End
iParaCount = oRange.Paragraphs.Count
End Function
|
|