[英]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.