ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何用VBA下载湖北省基本药物集中采购平台的多页药品信息

如何用VBA下载湖北省基本药物集中采购平台的多页药品信息

作者:绿色风 分类: 时间:2022-08-17 浏览:85
楼主
xmyjk
Q:如何用VBA下载湖北省基本药物集中采购平台的药品信息?网址:http://www.hbjbywzb.cn/ZBweb/HomePage/ShowGoodsList.aspx
且要把其多页数据下全。

A:思路,用IE对象打开网页,获取其表单数据,然后执行期翻页的脚本,通过源代码分析,我们可以得知,执行javascript:__doPostBack('HzPager1','2')这样的脚本可以翻页。我们只需替换红色部分为变量,即可实现翻页。
  1. Option Explicit
  2. Sub a()
  3.     Dim ie1 As Object, dmt As Object, r As Object, i As Long, p As Long, j As Long, t As Single, x As Long

  4.     Load UserForm1
  5.     UserForm1.Show 0

  6.     [a1].CurrentRegion.Offset(1).Clear
  7.     Cells.NumberFormat = "@"
  8.     Set ie1 = UserForm1.WebBrowser1

  9.     With ie1
  10.         .Navigate "http://www.hbjbywzb.cn/ZBweb/HomePage/ShowGoodsList.aspx"    '加载网页
  11.         Do Until .ReadyState = 4 '等待加载完毕
  12.             DoEvents
  13.         Loop
  14.         Set dmt = .Document '获取文档体


  15.         Set r = dmt.All("gridview").Rows '获取表格所在的行
  16.         For i = 1 To r.Length - 1 '历遍每行每列取数
  17.             For j = 0 To r(i).Cells.Length - 1
  18.                 Cells(i + 1, j + 1) = r(i).Cells(j).innerText
  19.             Next
  20.         Next

  21.         For p = 2 To 4454
  22.             .Navigate "javascript:__doPostBack('HzPager1','" & p & "')" '执行翻页的脚本
  23.             t = Timer
  24.             Do Until .ReadyState = 4 And .Busy = False And Timer > t + 1 '待脚本触发,等待数据再次加载完毕
  25.                 DoEvents
  26.             Loop
  27.             Set dmt = .Document '同上面的取数过程。
  28.             Set r = dmt.All("gridview").Rows
  29.             x = [a65536].End(3).Row
  30.             For i = 1 To r.Length - 1
  31.                 For j = 0 To r(i).Cells.Length - 1
  32.                     Cells(i + x, j + 1) = r(i).Cells(j).innerText
  33.                 Next
  34.             Next
  35.         Next
  36.     End With
  37.     Set ie1 = Nothing
  38.     Set dmt = Nothing
  39.     Set r = Nothing

  40.     [a1].CurrentRegion.Columns.AutoFit

  41. End Sub

hn.zip
2楼
亡者天下
过来学习一下!
3楼
yjwdjfqb
版主这个非常的好,当关闭窗体时,就会报错,改下吗
4楼
无忧招标信息网
谢谢楼主!~
5楼
水星钓鱼
强大,学习
6楼
老糊涂
过来学习一下

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap