作者:绿色风
分类:
时间:2022-08-17
浏览:213
楼主 嘉昆2011 |
问题陈述: 要求把 http://www.cninfo.com.cn/information/fund/netvalue/000001.html 中的“000001”分别用A列的代码替代(代码不足6位数在左边用0补足6位数),直到A列出现空格结束VBA。把网页中的“基金简称”、第一列“截止日期”、“单位资产净值”这三项分别填入对应的 B ,C ,D 列。
效果图:
具体步骤: 1,对A列设置文本格式,命名动态名称Code:- =Sheet1!$A$2:INDEX(Sheet1!$A:$A,COUNTA(Sheet1!$A:$A))
其他列也建立相应的动态名称Name(Date,NetValue):- =OFFSET(Sheet1!$A$2,,1,COUNTA(Sheet1!$A:$A)-1)
2,编写代码,用控件建立链接:- Sub Test()
-
- Range("B2:D" & Range("Code").Count + 1).ClearContents
-
- Dim IE As New InternetExplorer
- For i = 1 To Range("Code").Count
- 'IE.Visible = True
- IE.navigate "http://www.cninfo.com.cn/information/fund/netvalue/" & Range("Code").Cells(i, 1) & ".html"
- Do
- DoEvents
- Loop Until IE.readyState = READYSTATE_COMPLETE
-
- Dim Doc As HTMLDocument
- Set Doc = IE.document
- Set tb1 = IE.document.all.tags("table")(0)
- Range("Name").Cells(i, 1) = Split(tb1.Rows(0).Cells(0).innerText, "£º")(2)
- Set tb2 = IE.document.all.tags("table")(1)
- Range("Date").Cells(i, 1) = tb2.Rows(1).Cells(0).innerText
- Range("NetValue").Cells(i, 1) = tb2.Rows(1).Cells(1).innerText
- Next
- IE.Quit
- End Sub
推荐阅读: http://www.exceltip.net/thread-39369-1-1.html
相关案例: http://www.exceltip.net/thread-38142-1-1.html
http://www.exceltip.net/thread-38325-1-1.html
附件:
ET1022_VBAWEB.rar |
2楼 peterchen |
嘉昆版主:真正的大侠之一,解释很详细,还有参考资料,对小菜有学习有很好的参考意义,少走不少弯路,够小菜俺学几个月的了,感谢感谢! |
3楼 い卋玑┾宝珼 |
昆哥太强大了 |
4楼 嘉昆2011 |
西西过奖了。 |
5楼 老糊涂 |
学习 |
6楼 doron |
简直膜拜! |
7楼 lvbin2ooo |
感谢分享 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一