ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] (网页采集)如何在网上批量查询信息并提取到Excel(网页有图片验证码)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-2-27 17:36 | 显示全部楼层
shenghua8 发表于 2013-2-27 17:33
假如表格不是这么布局的,
“身份证号、考生号、姓名”不是ABC三列,
或者“院校名称”不在D列,或者D2 ...

那就上传模版附件。我帮你把代码加进去。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-27 17:45 | 显示全部楼层
kangatang 发表于 2013-2-27 17:36
那就上传模版附件。我帮你把代码加进去。

要考虑不能泄露太多的个人信息,重做一遍模版比较费事,
再有,每年的表格可能都不太一样,
所以我就不传模版了。
您已经将程序写得很细了,
这样吧,每次用时,我根据情况将列标或列号改一下即可。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-28 10:08 | 显示全部楼层
kangatang 发表于 2013-2-27 17:25
对于第二个要求
"2、我希望根据表格实际多少行,就循环多少次,我将"

kangatang 老师:
我重新学习您的解答时,才发现您说的这句话:
“每次运行都继续上次未完成的工作。”
哇!简直太好了!您考虑得真周到!{:soso_e142:}

不过,我还是仅针对我的需要,将您的这两行代码改了一下,请您批阅并指正:
1、第一个非空单元格
firstone = [D65536].End(xlUp).Row
改成了
firstone = Cells(Rows.Count, 6).End(xlUp).Row
同时我将Cells(i, 4).Value = Split那句也改成了Cells(i, 6).Value = Split
这样,以“学籍状态”列来定位第一个非空单元格的行号,
以后,我只需根据“学籍状态”在哪一列,将6改成相应的列数就可以了。
而且,Rows.Count比65536更通用于Excel 2003/2007前后的版本。

2、最后一个非空单元格
lastone = Columns("A:C").Find("*", _
   SearchOrder:=xlByRows, LookIn:=xlFormulas, _
   SearchDirection:=xlPrevious).EntireRow.Row
改成了
lastone = Cells(1, 1).SpecialCells(xlLastCell).Row
这样,不论“身份证号、考生号、姓名”分布在哪几列,我只要找到全表的最后一个非空单元格就可以了,以后表有变化,这一句也不用改。

请您批阅并指正。

TA的精华主题

TA的得分主题

发表于 2013-2-28 10:14 | 显示全部楼层
本帖最后由 kangatang 于 2013-2-28 10:18 编辑
shenghua8 发表于 2013-2-28 10:08
kangatang 老师:
我重新学习您的解答时,才发现您说的这句话:
“每次运行都继续上次未完成的工作。” ...

感谢提醒,向你学习。
程序有点意想不到的用途,我觉得可以用它练习盲打和测试打字速度。批量处理还是有点艰难。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-28 10:22 | 显示全部楼层
本帖最后由 shenghua8 于 2013-2-28 10:24 编辑
kangatang 发表于 2013-2-28 10:14
感谢提醒,向你学习。
程序有点意想不到的用途,我觉得可以用它练习盲打和测试打字速度。批量处理还是有 ...


使不得,使不得,您可折煞我了!

还真像您说的,同时练习了盲打。{:soso_e151:}

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-28 11:10 | 显示全部楼层
kangatang 发表于 2013-2-28 10:14
感谢提醒,向你学习。
程序有点意想不到的用途,我觉得可以用它练习盲打和测试打字速度。批量处理还是有 ...

kangatang老师:
If Not InStr(rawdata, "院校名称") > 0 Then
                   Cells(i, 4).Value = Split(Split(rawdata, "_GB2312'""" & ">")(1), "</font>")(0)
这句,
我要改成
If Not InStr(rawdata, "学籍状态") > 0 Then
                   Cells(i, 6).Value = Split(Split(rawdata, "_GB2312'""" & ">")(1), "</font>")(0)

请问 If 后面括号里的"院校名称"我改成了"学籍状态",不会有什么影响吧?

TA的精华主题

TA的得分主题

发表于 2013-2-28 11:30 | 显示全部楼层
shenghua8 发表于 2013-2-28 11:10
kangatang老师:
If Not InStr(rawdata, "院校名称") > 0 Then
                   Cells(i, 4).Value  ...

不会的。只是为了判断有无此学生。

TA的精华主题

TA的得分主题

发表于 2013-6-19 09:02 | 显示全部楼层
我不知道楼主为什么被禁言。至少其他网友应该有知情权吧。法律都提倡透明,何况是网站之规矩。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-6-26 23:04 | 显示全部楼层
皆因我重复为我另一个帖子做推广。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-6-26 23:07 | 显示全部楼层
kangatang 发表于 2013-6-19 09:02
我不知道楼主为什么被禁言。至少其他网友应该有知情权吧。法律都提倡透明,何况是网站之规矩。

谢谢 kangatang 老师的仗义之言。
好了,7天禁言结束了,现在能发言了。
之前被禁是因为我重复推广我的这个帖子:
最好的PDF转Excel软件:PDF2XL 4.12 企业版。本人汉化
http://club.excelhome.net/thread-1028269-1-1.html
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 09:02 , Processed in 0.043689 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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