ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求助抓取新浪行情

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-9-18 16:18 | 显示全部楼层
五指山888 发表于 2016-9-18 15:09
还是走不通,搞到现在不知问题在哪儿,第13行出错,不过先谢谢老师

我这能正常运行,可能是版本的问题!我这2007。
修改下,请测试!

TA的精华主题

TA的得分主题

发表于 2016-9-18 16:27 | 显示全部楼层
附件如下:
东方行情下载.rar (381.58 KB, 下载次数: 222)

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-9-18 16:32 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2016-9-18 16:59 | 显示全部楼层
五指山888 发表于 2016-9-18 11:01
行情中心_新浪财经_新浪网  http://vip.stock.finance.sina.com.cn/mkt/#hs_a,能打开的
  1. Sub 股票()
  2.     Set oDom = CreateObject("htmlfile")
  3.     Set oWindow = oDom.parentWindow
  4.     Set oHttp = CreateObject("winHttp.winHttpRequest.5.1")
  5.     r = 1
  6.         For y = 1 To 3 '设置读取页数
  7.         oHttp.Open "GET", "http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData?page=" & y & "&num=40&sort=symbol&asc=1&node=hs_a&symbol=&_s_r_a=init", False
  8.         oHttp.send
  9.         stext = oHttp.responseText
  10.         If stext = "null" Then Exit Sub
  11.         oWindow.execScript "o=" & stext
  12.         For i = 0 To oWindow.eval("o.length") - 1
  13.             r = r + 1
  14.             oWindow.execScript "oi=o[" & i & "];a=[];for(x in oi){a.push(oi[x])}"
  15.             ar = Split(oWindow.a, ",")
  16.             For j = 1 To 13
  17.                 k = IIf(j = 1, 0, j)
  18.                 Cells(r, j) = ar(k)
  19.             Next j
  20.         Next i
  21.     Next y
  22. End Sub
复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-9-18 16:59 | 显示全部楼层
本帖最后由 五指山888 于 2016-9-18 19:19 编辑

1  Range("b2:b" & (UBound(arr) + 2)) = Application.Transpose(arr)还是运行到这句会停顿,
2.扩大抓取列的是哪一句,现在抓取的是27列,网页数据在33列以上,修改那一句可以扩展列。
3关掉这个工作簿,光标还是在打圈,是不是有循环没终止。
谢谢老师看看能否解决第三个问题估计是程序是2007的关系,第一个问题也是版本的问题

TA的精华主题

TA的得分主题

发表于 2016-9-18 17:10 | 显示全部楼层
五指山888 发表于 2016-9-18 16:59
1  Range("b2:b" & (UBound(arr) + 2)) = Application.Transpose(arr)还是运行到这句会停顿,
2.扩大抓 ...

1. 注销此句试下 '    Dim arr() As String
2.  ' Call FenLie
    Columns("B:B").TextToColumns Destination:=Range("B1"), DataType:=1, Comma:=True, FieldInfo:=Array(Array(1, 9), Array(2, 1)), TrailingMinusNumbers:=True
3.不应该的,请其他老师帮测试下。

TA的精华主题

TA的得分主题

发表于 2016-9-18 17:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
将'    Range("b2:b" & (UBound(arr) + 2)) = Application.Transpose(arr)
修改为    Range("b2").Resize(UBound(arr) + 1) = Application.Transpose(arr)

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-9-18 18:51 | 显示全部楼层
YZC51 发表于 2016-9-18 17:41
将'    Range("b2:b" & (UBound(arr) + 2)) = Application.Transpose(arr)
修改为    Range("b2").Resize( ...

还是一样

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-9-18 20:55 | 显示全部楼层

谢谢liu-aguang老师,能用,就是打开80页太慢,如果用yzc51老师的方法可能很快,可惜他写的代码在2003版本不能用,前面写的下载st的非常快。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-9-18 21:40 | 显示全部楼层
YZC51 发表于 2016-9-18 17:10
1. 注销此句试下 '    Dim arr() As String
2.  ' Call FenLie
    Columns("B:B").TextToColumns Dest ...

第二个问题解决了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-23 00:54 , Processed in 0.034608 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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