ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: mail249120

[求助] VBA抓取网页表格数据

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-1-31 12:36 | 显示全部楼层
samsinn 发表于 2019-1-30 17:28
备注说明你没看懂吗? 不要从i=1开始遍历
for i = 0 to ...

啊,我原来以为第一行是标题行,可以不要,就改成1了,自作聪明了看来

TA的精华主题

TA的得分主题

发表于 2019-1-31 14:06 | 显示全部楼层
mail249120 发表于 2019-1-31 12:36
啊,我原来以为第一行是标题行,可以不要,就改成1了,自作聪明了看来

照理来说,是可以跳过标题行从1开始,但是你为何什么会发生出错,可能是其他地方改得不对

TA的精华主题

TA的得分主题

发表于 2019-1-31 17:18 | 显示全部楼层
我有时运行也会出错,但提示不一样,之后几次又不会提示错误,可能网速也有关系

取网页表格1.rar

674 Bytes, 下载次数: 227

测试正常的

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-1 09:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
samsinn 发表于 2019-1-31 17:18
我有时运行也会出错,但提示不一样,之后几次又不会提示错误,可能网速也有关系

是的啊,每次出错都不一样,我只能用resume next,但这样的结果就是数据没法抓全,而且每次抓同样的链接得到的数据量都是不一样的,苦恼

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-1 09:52 | 显示全部楼层
samsinn 发表于 2019-1-31 17:18
我有时运行也会出错,但提示不一样,之后几次又不会提示错误,可能网速也有关系

所以为了防止出错,在这句Set tableX = HTML.all.tags("table")(0)后面我加了一个判断:If Not Tablex Is Nothing Then... 这样的结果就是数据抓不全,苦恼

TA的精华主题

TA的得分主题

发表于 2019-2-1 11:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
这个不难吧,还没有搞定

TA的精华主题

TA的得分主题

发表于 2019-2-1 11:53 | 显示全部楼层
、、、、、、、、、、、、、

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-1 13:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
xyxcc177 发表于 2019-2-1 11:53
、、、、、、、、、、、、、

需要用Excel VBA代码来抓取,

TA的精华主题

TA的得分主题

发表于 2019-2-1 13:25 | 显示全部楼层
本帖最后由 samsinn 于 2019-2-1 13:27 编辑
mail249120 发表于 2019-2-1 09:52
所以为了防止出错,在这句Set tableX = HTML.all.tags("table")(0)后面我加了一个判断:If Not Tablex Is  ...

找到一个运行比较稳定的方法,就是加时间延迟
  1. Private Declare Function timeGetTime Lib "winmm.dll" () As Long
  2. Sub Delay(ByVal num As Integer)
  3. Dim t As Long
  4. t = timeGetTime
  5. Do Until timeGetTime - t >= num * 1000
  6. DoEvents
  7. Loop
  8. End Sub
复制代码

使用方法,把这段代码放在模块最前面,然后在xmlhttp.send 后面加上delay 2
2表示秒数

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-1 13:44 | 显示全部楼层
samsinn 发表于 2019-2-1 13:25
找到一个运行比较稳定的方法,就是加时间延迟

使用方法,把这段代码放在模块最前面,然后在xmlhttp.se ...

我试试看,希望能解决,感谢为先
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-29 20:36 , Processed in 0.033008 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表