打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
搜狐基金数据下载成Excel版 | VBA实例教程

除非注明,文章均为 战战如疯 原创,转载请保留链接: http://www.zhanzhanrufeng.com/cat3/163.html,VBA交流群273624828。

今天我们继续来看一个利用Excel下载网站数据的案例。今天我们要下载的是搜狐基金网中的数据,所要的数据是基金的十大重仓股,比如基金华夏大盘精选混合的十大重仓股,其网址是http://q.fund.sohu.com/q/hs10.php?code=000011。经过分析我们可以知道该网站的数据正是放在http://q.fund.sohu.com/q/hs10.php?code=000011这个网址上,从这个网址上我们也很容易分析出来这里000011就是华夏大盘精选混合这个基金的代码,由此想到如果我们想要提取其他基金的十大重仓股只需要把相应的code改一下就可以了。在这里我用了一个输入框以便在运行程序时输入你要提取的基金代码。下面来看代码

Sub TOP10()
Dim oDoc, winhttp, URL, t1, t2, r, i, n, p, j, arr, code, d1, d
Sheet1.UsedRange.Offset(1, 0).ClearContents  '清除除表头外的内容
Application.ScreenUpdating = False          '关闭屏幕更新
Application.DisplayStatusBar = True         '状态栏开始
Columns('A:C').NumberFormatLocal = '@'      '设成文本格式
code = Application.InputBox('输入代码')     '输入代码框
If code = False Then Exit Sub               '没有输入则退出程序
URL = 'http://q.fund.sohu.com/q/hs10.php?code=' & code   '变量code是上面的输入框中来的
Set oDoc = CreateObject('htmlfile')         'html方法用来在后面取表格数据
Set winhttp = CreateObject('WinHttp.WinHttpRequest.5.1')
With winhttp
.Open 'GET', URL, False          '简单的GET命令
.setRequestHeader 'Connection', 'Keep-Alive'
.send
t1 = .responsetext             '返回的字符串放在变量t1中
On Error Resume Next
oDoc.body.innerhtml = t1        '不解释了,自己看html相关知识吧
Set r = oDoc.all.tags('table')(5).Rows     '大体意思就是取网页中第5个table表
For i = 1 To r.Length - 1         '这是对行循环
Cells(i 1, 1) = code         '自己在首列加了个代码列
For j = 0 To r(i).Cells.Length - 1   '这是对列循环
Cells(i 1, j 2) = r(i).Cells(j).innertext   '这就是赋值了
Next j
Next i
End With
Sheet1.UsedRange.Columns.AutoFit   '调整列宽的,这些都可以录制宏得到代码,再拼凑一下就可以了
Sheet1.UsedRange.HorizontalAlignment = xlCenter
Set winhttp = Nothing
Application.StatusBar = False
Application.ScreenUpdating = True
End Sub

上面的代码中我加上了简单的注释,但是如果你没有这方面的基础应该还是看不明白的,想看明白的还是去ExcelHome学教程吧。我这个程序是要你单个输入基金代码,当然你如果想一次提取多个基金代码也是可以的。将你的代码事先放到一列中,然后依次遍历该列的代码就可以了,感兴趣的自己试下吧,简单的for循环就可以完成了。

本节示例文件下载地址http://pan.baidu.com/s/1jGsqG8u

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
新浪财经数据下载
完全手册Excel VBA典型实例大全:通过368个例子掌握
如果找到N / A,VBA excel代码删除行(VBA excel code to delete ...
百度地图搜索结果导出方法winHTTP vba
自学资料(Excel VBA)[收集整理15]
Excel 设置成回车后自动归零
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服