作者:乔山办公网日期:
返回目录:excel表格制作
供参考
Sub test()
Dim myQuery
With ActiveSheet
.Cells.Delete
.[a1] = "Conneting, Please Wait..."
Set myQuery = ActiveSheet.QueryTables _
.Add(Connection:="URL;", _
Destination:=.Cells(1, 1))
End With
With myQuery
.Refresh
End With
补充:grhsc你不是知道读取全百部网页的程度序吗?那里可以先把整个网页以表格的方式读问取到excel中,建立一个临时sheet,然答后删除掉多余的数据,或者在专excel中在读取需要的数据不属就行了?
要抓取这个网站的全部数据真的比较复杂。
我感兴趣的是你怎么将非百度的网址也发出来了,我平时回答问题,多几个字母貌似网址的都被判定违规屏蔽了。
你这个里面没有bk变量的赋值呀!
分析好久才弄出来的,经实测成功,望采纳...
Sub test()
Dim strUrl$, objHttp As Object, strRtn, arrRtn, i%, j%
strUrl = "http://f9.eastmoney.com/soft/gp13.php?code=00000202"
Set objHttp = CreateObject("msxml2.xmlhttp")
objHttp.Open "GET", strUrl, 0
objHttp.send
While objHttp.readystate <> 4
DoEvents
Wend
Cells.Clear '清除表格内容
Rows(2).NumberFormatLocal = "@" '第二行设置为文本格式
'取 "<table" 之后的内容
strRtn = Split(objHttp.responsetext, "<table", -1, vbTextCompare)(1)
'以 "<tr>" 作为分隔符e79fa5e98193e59b9ee7ad94334把数据分为行数组
strRtn = Split(strRtn, "<tr>", -1, vbTextCompare)
For i = 0 To UBound(strRtn) '行循环
'各个字段以 "<span>" 分隔
arrRtn = Split(strRtn(i), "<span>", -1, vbTextCompare)
For j = 1 To UBound(arrRtn) '列循环
'取"</span>"之前的内容,并且把" "替换为空,然后输出到表格里
Cells(i + 1, j + 1) = Replace(Split(arrRtn(j), "</span>", -1, vbTextCompare)(0) _
, " ", "", 1, -1, vbTextCompare)
Next j
Next i
Set objHttp = Nothing
MsgBox "done..."
End Sub