ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 网页提取

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-10-27 00:33 | 显示全部楼层
学不完用不尽 发表于 2015-10-27 00:19
这四行代码,取不出数据!
貌似需要设置等待时间。

这样试下
  1. Sub test1()
  2.     Set myQuery = ActiveSheet.QueryTables.Add(Connection:="URL;http://chart.cp.360.cn/kaijiang/qxc?lotId=110022&spanType=0&span=1000&r=0.9777160357816834#roll_0/", Destination:=[a1])
  3.     myQuery.Refresh
  4. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-10-27 12:47 | 显示全部楼层

这样无法进行后期操作,C列数据被隐藏了(字体颜色是白色)。建议再增加点东东,以便于其他操作。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-10-28 00:00 | 显示全部楼层
本帖最后由 学不完用不尽 于 2015-10-28 00:06 编辑

微微改动了一下,可以取到数据。
  1. Sub test1() '取1000期
  2.     Dim myQuery
  3.     [A:Z].Clear
  4.     Set myQuery = ActiveSheet.QueryTables.Add(Connection:="URL;http://chart.cp.360.cn/kaijiang/qxc?lotId=110022&spanType=0&span=1000&r=0.9777160357816834#roll_0/", Destination:=[a1])
  5.     myQuery.Refresh False
  6. 'expression.Refresh(BackgroundQuery)
  7. 'expression   必需。该表达式返回一个 QueryTable 对象。
  8. 'BackgroundQuery    Variant 类型,可选。
  9. '只用于基于 SQL 查询结果的 QueryTable。
  10. '如果该值为 True,则在数据库建立连接并提交查询之后,将控制返回到过程。
  11. 'QueryTable 在后台进行更新。如果该值为 False,则在所有数据被取回到工作表之后,将控制返回到过程。
  12. '如果没有指定该参数的值,则 BackgroundQuery 属性的设置将决定查询模式。

  13.     [1:3].Delete
  14.     [C:C].Font.ColorIndex = 56
  15. End Sub
复制代码


评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-10-28 00:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 学不完用不尽 于 2015-10-28 00:16 编辑

帮助文件注释:

Refresh 方法
应用于 QueryTable 对象的 Refresh 方法。
更新外部数据区域 (QueryTable)。Boolean 类型。
expression.Refresh(BackgroundQuery)
expression      必需。该表达式返回一个 QueryTable 对象。
BackgroundQuery      Variant 类型,可选。只用于基于 SQL 查询结果的 QueryTable。如果该值为 True,则在数据库建立连接并提交查询之后,将控制返回到过程。QueryTable 在后台进行更新。如果该值为 False,则在所有数据被取回到工作表之后,将控制返回到过程。如果没有指定该参数的值,则 BackgroundQuery 属性的设置将决定查询模式。
说明
下列说明应用于基于 SQL 查询结果的 QueryTable 对象。
Refresh 方法使 Microsoft Excel 连接到 QueryTable 对象的数据源,执行 SQL 查询,并将数据返回至基于 QueryTable 对象的区域。仅当调用该方法之后,QueryTable 对象才会与数据源进行通信。
当建立对 OLE DB 或 ODBC 数据源的连接时,Microsoft Excel 使用由 Connection 属性指定的连接字符串。如果指定的连接字符串缺少必需的值,则将显示一个对话框,提示用户输入必需的信息。如果 DisplayAlerts 属性值为False,则不显示对话框,而且 Refresh 方法将由于“连接信息不足”异常而失效。
在 Microsoft Excel 建立一个成功的连接之后,将保存完整的连接字符串,这样,在同一编辑会话中以后调用 Refresh 方法时就不会显示提示。通过检验 Connection 属性的值,可以取得完整的连接字符串。
完成数据库连接后,将检查 SQL 查询的有效性。如果该查询无效,Refresh 方法将失效并导致“SQL 语法错误”异常。
如果查询需要参数,在调用 Refresh 方法之前,必须用参数绑定信息初始化 Parameters 集合。若未绑定足够参数,Refresh 方法失效并导致“参数错误”异常。如果把参数设置为提示用户指定,则无论 DisplayAlerts 如何设置,都将对话框显示给用户。如果用户取消一个参数对话框,则 Refresh 方法停止,并且该值为 False。如果向 Parameters 集合绑定了多余的参数,则这些多余的参数将被忽略。
如果成功地完成或启动查询,则 Refresh 方法的值为 True;如果用户取消连接或参数对话框,该方法返回 False。
检测 FetchedRowOverflow 属性以判断取得的数据行数是否超出了工作表的可用行数。每次调用 Refresh 方法之前,该属性都将初始化。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-10-28 08:28 | 显示全部楼层
请测试
  1. Sub test1() '取1000期
  2.     Dim myQuery
  3.     With Sheets("Sheet1")
  4.     .[A:J].Clear
  5.         Set myQuery = .QueryTables.Add(Connection:="URL;http://chart.cp.360.cn/kaijiang/qxc?lotId=110022&spanType=0&span=1000&r=0.9777160357816834#roll_0/", Destination:=.[a1])
  6.         myQuery.Refresh False
  7. 'expression.Refresh(BackgroundQuery)
  8. 'expression   必需。该表达式返回一个 QueryTable 对象。
  9. 'BackgroundQuery    Variant 类型,可选。
  10. '只用于基于 SQL 查询结果的 QueryTable。
  11. '如果该值为 True,则在数据库建立连接并提交查询之后,将控制返回到过程。
  12. 'QueryTable 在后台进行更新。如果该值为 False,则在所有数据被取回到工作表之后,将控制返回到过程。
  13. '如果没有指定该参数的值,则 BackgroundQuery 属性的设置将决定查询模式。

  14.         .[1:3].Delete
  15.         .[C:C].Font.ColorIndex = 56
  16.     End With
  17. End Sub

  18. Sub Click()
  19. Call test1
  20.     Sheets("Sheet1").Range("A1:J3").Copy
  21.     [a1:j3].PasteSpecial Paste = 0 '无条件粘贴
  22. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-10-28 08:31 | 显示全部楼层
附件上传
QT加强版.rar (64.24 KB, 下载次数: 32)

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-10-28 23:30 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-10-28 23:36 | 显示全部楼层

字体颜色使用自定义的颜色,赞一个!

TA的精华主题

TA的得分主题

发表于 2015-10-29 09:11 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-11-1 08:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本代码参考吴老师例程和学不完用不尽老师的指导作了修改,在此致谢!

  1. Sub test1() '取1000期 本代码参考吴老师例程和学不完用不尽老师的指导作了修改,在此致谢!
  2.    [A:J].Clear
  3.     URL = "http://chart.cp.360.cn/kaijiang/qxc?lotId=110022&spanType=0&span=1000&r=0.9777160357816834#roll_0/"
  4.     With ActiveSheet.QueryTables.Add(Connection:="URL;" & URL, Destination:=[a2])
  5.         .WebFormatting = 1 'xlWebFormattingNone '指定是否包含格式
  6.         .WebSelectionType = 0 'xlSpecifiedTables '指定table模式
  7.         .WebTables = "2" '第2张table
  8.         .Refresh False
  9.        ' .[1:3].Delete
  10.         [C:C].Font.ColorIndex = 56
  11.     End With
  12. End Sub
复制代码

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-20 06:17 , Processed in 0.049406 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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