乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 帮忙写个<em>excel</em> VBA代码,实现自动抓取下记网页内的表格...-excel

帮忙写个<em>excel</em> VBA代码,实现自动抓取下记网页内的表格...-excel

作者:乔山办公网日期:

返回目录: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>"之前的内容,并且把"&nbsp;"替换为空,然后输出到表格里
            Cells(i + 1, j + 1) = Replace(Split(arrRtn(j), "</span>", -1, vbTextCompare)(0) _
                , "&nbsp;", "", 1, -1, vbTextCompare)
        Next j
    Next i
    Set objHttp = Nothing
    MsgBox "done..."
End Sub

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网