电竞比分网-中国电竞赛事及体育赛事平台

分享

Excel | 運(yùn)用VBA提取網(wǎng)頁(yè)數(shù)據(jù)的一個(gè)實(shí)例 | 網(wǎng)頁(yè),數(shù)據(jù),信息,提取,基金

 mastereye 2018-01-23
 本帖最后由 2339083510 于 2017-2-10 14:43 編輯
http://www./thread-42824-1-1.html

非常感謝分享,研究你的帖子,我也大致上搞懂了excel采數(shù)據(jù)的一些思路,不過你的代碼太復(fù)雜,我也寫了一個(gè),簡(jiǎn)化了一些(包含鏈接就發(fā)不出來(lái),這個(gè)自己把"”%%%%%%%%%%%%%%%%%%"替換為鏈接就行了
  1. Sub 運(yùn)用VBA提取網(wǎng)頁(yè)的基金信息到Excel工作表中()
  2.     On Error GoTo ErrorHandler
  3.     Dim re As Object, srg$, pos1%, pos2%, i%, j%
  4.     Dim arr() As String, brr() As String, crr() As String, Rst(1 To 10000, 1 To 13)
  5.     Application.ScreenUpdating = False

  6.     '下載數(shù)據(jù)
  7.     With CreateObject("Microsoft.XMLHTTP")
  8.         .Open "get", "%%%%%%%%%%%%%%%%%%", False
  9.         .send
  10.         srg = .responsetext
  11.     End With

  12.     '提取標(biāo)題
  13.     pos1 = InStr(srg, "<THEAD>") + Len("<THEAD>")
  14.     pos2 = InStr(srg, "</THEAD>")
  15.     arr = Split(Mid(srg, pos1, pos2 - pos1), "</td>")
  16.     Set re = CreateObject("VBScript.RegExp")
  17.     With re
  18.         .Global = True
  19.         .Pattern = "<[^>]+>|\s+"
  20.         For i = 1 To 13
  21.             Rst(1, i) = .Replace(arr(i + 1), "")
  22.         Next
  23.     End With

  24.     '提取內(nèi)容
  25.     brr = Split(Mid(srg, pos2, InStr(pos2, srg, "</table>")), "</tr>")
  26.     With re
  27.         For i = 0 To UBound(brr) - 7
  28.             crr = Split(brr(i), "</td>")
  29.             For j = 1 To 13
  30.                 If j = 1 Then
  31.                     Rst(i + 2, j) = "'" & .Replace(crr(j + 1), "")
  32.                 Else
  33.                     Rst(i + 2, j) = .Replace(crr(j + 1), "")
  34.                 End If
  35.             Next
  36.         Next
  37.     End With

  38.     '把數(shù)據(jù)寫入當(dāng)前工作表
  39.     Cells.Clear
  40.     [A1].Resize(i + 1, 13) = Rst
  41.     Columns.AutoFit
  42. ErrorHandler:
  43.     Set re = Nothing
  44.     Erase arr, brr, crr, Rst
  45.     Application.ScreenUpdating = True
  46. End Sub
復(fù)制代碼


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多