簡體   English   中英

使VBA抓取的數據自動更新

[英]Making VBA scraped Data update automatically

我成功地編寫了 VBA 來從網頁中抓取數據。

由於數據定期更新,我希望它也能在我的 Excel 文檔中更新。

我得到的數據是列出的所有博彩公司的不同賠率。

我為變量 HTMLRow 嘗試了 .refreshperiod.refresh 函數,但由於某種原因它不起作用

Sub Scrape()
    For x = 1 To 5
        Worksheets("links").Select
        Worksheets("links").Activate
        mystr = "https://easyodds.com/tennis/challenger/santiago-chile/928271/match-result"
        mystr = Cells(x, 1)

        Dim XMLPage As New MSXML2.XMLHTTP60
        Dim HTMLDoc As New MSHTML.HTMLDocument
        Dim HTMLOdds As MSHTML.IHTMLElement
        Dim HTMLRow As Object
        Dim HTMLCell As MSHTML.IHTMLElement

        Dim RowNum As Long, ColNum As Integer
        XMLPage.Open "GET", mystr, False
        XMLPage.send

        Dim XMLResp As MSHTML.IHTMLElement
        HTMLDoc.body.innerHTML = XMLPage.responseText
        Set HTMLOdds = HTMLDoc.getElementById("betsTable")
        Worksheets.Add
        Cells.Select
        Selection.NumberFormat = "0.00"
        Range("A1").Value = mystr
        RowNum = 
        Set HTMLRow = HTMLOdds.getElementsByTagName("tbody")
        For Each HTMLRow In HTMLOdds.getElementsByTagName("tr")
            ColNum = 1
            For Each HTMLCell In HTMLRow.getElementsByTagName("Div")
                Cells(RowNum, ColNum) = HTMLCell.innerText
                ColNum = ColNum + 1
            Next HTMLCell
            RowNum = RowNum + 1
        Next HTMLRow
    Next x
End Sub

您可以嘗試使用Application.OnTime Now + TimeValue("01:00:00"), "YourMethodName"調用您的方法。 此示例將每小時調用一次該方法,但您必須保持文件打開。

在模塊 2 中更新以下代碼:

Sub Workbook_Open()
Call Module1.Scrape
End Sub

打開工作文件時會觸發此代碼。 在主程序的第一行更新以下代碼

Sub Scrape()
Application.OnTime Now + TimeValue("0:01"), "Scrape" 

它會每分鍾自動執行一次代碼,在這里您可以根據需要更改時間間隔。 即使您關閉了工作表,這也會無限循環執行。

謝謝你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM