如何用VBA实现打开PDF并查询数据,获取页码,或是提取该页面为新文件

如何用VBA实现打开PDF并查询数据,获取页码,或是提取该页面为新文件,第1张

打开pdf文档,查找到指定字符串,然后插入书签

以下代码先设置一个待查找字符串,用findtext方法查找,然后用createchild方法插入书签。代码的运行环境为Win81,Word2010 VBA,Acrobat Pro DC,在本机测试成功。

使用到的主要方法为AVDocFindText和BookMarkcreateChild。

AVDocFindText有4个参数:

szText,要查找的字符串

bCaseSensitive,是否区分大小写,正数为区分,0为不区分

bWholeWordsOnly,是否匹配整个单词,正数为匹配,0为不匹配

bReset,查找开始的位置,正数则从第一页开始,0则从当前页开始

BookMarkcreateChild有3个参数

cName,用户在导航面板中看到的书签的名称。

cExpr,单击书签时要执行的表达式,为JavaScript

nIndex,(可选)在书签的子数组中,创建新子书签的基于0的索引。默认值为0。

Sub Pdf添加书签()

'为某书添加书签

Dim App As New AcrobatAcroApp

Dim PDoc As New AcrobatAcroPDDoc, AVDoc As New AcrobatAcroAVDoc

Dim Jso As Object

Dim BMark As Object '不能声明为AcrobatAcroPDBookmark,否则createchild方法不可用。

Dim PFile As String, WordTF As String, PageNum As Long

PFile = "F:\指定文件pdf" '要插入书签的pdf文件

WordTF = "要查找的"

If PDocOpen(PFile) Then

Set Jso = PDocGetJSObject

Set AVDoc = PDocOpenAVDoc("")  '获得一个可见文档

JsobookmarkrootRemove '移除原有的所有书签

End If

If AVDocFindText(WordTF, 0, 0, 1) Then '从第一页开始,如果找到了字符串WordTF一次

PageNum = AVDocGetAVPageViewGetPageNum '获得当前页码

Set BMark = Jsobookmarkroot '设置书签根对象

BMarkcreateChild WordTF, "thispageNum=" & PageNum, 0 '创建一个书签

PDocSave 1, PFile

End If

PDocClose

AppCloseAllDocs

AppHide

AppExit

Set AVDoc = Nothing

Set PDoc = Nothing

Set App = Nothing

Set BMark = Nothing

Set Jso = Nothing

End Sub

首先打开Excel 2007工作表,点击想要把数据导入的位置,然后在菜单栏找到第五项"数据“,点击,在“获取外部数据”项下找到“自网站”并点击。

这时d出来”新建 Web 查询“对话框,可以在“地址”一栏键入要添加数据的网页的地址。

添加完成后,点击“转到(G)”,下面会出来要添加网页的内容和**箭头,单击要选择的表旁边的**箭头,可以看到点击后**箭头变成绿色的对号,这表示内容已经选中了,然后单击“导入(I)”。

d出来”导入数据“对话框,设置完成点击“确定”。

Excel表中显示“正在获取数据……”。

数据获取完成,之前选中的网页内容全部导入了Excel工作表里。

gTagDbGetTag("sensor\zbqc_DO")Value

"sensor\zbqc_DO"为在RSView32标签数据库中的标签名(按你自己标签的实际填),可以用这种方式获得标签值,也可以给标签赋值。

DIM A as Integer

A = gTagDbGetTag("sensor\zbqc_DO")Value

或者

gTagDbGetTag("sensor\zbqc_DO")Value =5

VBA 在提取数据时经常会出现数据不稳定的情况,这可能是由以下几个原因导致的:

1 网络连接不稳定:VBA 在提取数据时需要使用网络连接,如果网络出现了问题,就可能导致数据不稳定。

2 数据源变化:VBA 会定期读取数据,如果数据源发生变化,就可能导致数据不稳定。

3 缓存问题:如果 VBA 程序正在使用某些缓存优化,那么当这些缓存发生变化时,数据也可能变得不稳定。

4 内存溢出:VBA 在提取大量数据时可能会出现内存溢出的问题,这也会导致数据不稳定。

通过检查和解决以上几个原因,就可以有效地解决 VBA 数据获取不稳定的问题。

以上就是关于如何用VBA实现打开PDF并查询数据,获取页码,或是提取该页面为新文件全部的内容,包括:如何用VBA实现打开PDF并查询数据,获取页码,或是提取该页面为新文件、做一个电子表格excel vba 实时获取网页数据、vba如何获取rsview32即时数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9757299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存