我想在PDF文件中搜索字符串并打印计数的实例数。我已经为Word,Excel和Powerpoint做了这个,但从来没有使用过Acrobat。当我调用acroDoc.Range时出错,所以我认为这是Acrobat的错误语法。
运行时错误' 450':参数数量错误或属性分配无效。
我无法在Adobe的文档中找到答案。选择整个文档和搜索字符串的正确语法是什么?
Sub pdfSearch()
Dim acroApp As Object
Dim acroDoc As Object
Dim aRng As Object
Dim i As Integer
i = 0
Set acroApp = CreateObject("AcroExch.App")
Set acroDoc = CreateObject("AcroExch.pddoc")
acroDoc.Open ("C:\Documents\example.pdf")
Set aRng = acroDoc.Range
With aRng.Find
Do While .Execute(FindText:="desk", MatchCase:=False)
i = i + 1
Loop
End With
acroDoc.Close 0
Set aRng = Nothing
Set acroDoc = Nothing
Set acroApp = Nothing
Debug.Print (i)
End Sub
答案 0 :(得分:0)
Acrobat没有Range的概念。 FindText查找指定的文本,滚动以使其可见,并突出显示它。找到文本时返回值为-1。除非您还传递一个参数来重置选择,否则后续调用将从您离开的位置开始,以便获得计数,您只需循环直到返回值不是-1。我有很长一段时间没有使用过VAB,但我认为代码看起来像这样......
i = 0
Set acroApp = CreateObject("AcroExch.App")
Set acroDoc = CreateObject("AcroExch.AVDoc")
acroDoc.Open ("C:\Documents\example.pdf")
Do While acroDoc.FindText("desk",0) == -1
i = i + 1
Loop