我遇到以下错误,数据在网页中更新,但不在Excel中。我使用Application.OnTime刷新网页。
下面是代码
REQUEST_LOGGING_HTTP_4XX_LOG_LEVEL = logging.WARNING
根据快照,网站有7行,但是excel仅捕获5行。我尝试了所有可能的方法,但仍然找不到原因。我希望清除Web缓存,但是找不到引用。
答案 0 :(得分:2)
数字在网站上更改。我第一次看时是6行,然后是5行,然后又是6行。
您的代码很好,但是您需要Schedule:=True
而不是Schedule = True
(错字?),并且真的需要循环所有表吗?您也可以Dim HTML As Object
。
老实说,如果结果显示出这种类型的不一致,我认为该网站还是很粗略的。
在任何给定时间获取所有行的一种简单方法是简单地复制粘贴整个表,如下所示。您可以将其与刷新代码链接起来。
Option Explicit
Public Sub GetTable()
Dim sResponse As String, html As New HTMLDocument, clipboard As Object
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", "http://register.um.edu.my/kok_kosong_bi.asp", False
.send
sResponse = StrConv(.responseBody, vbUnicode)
End With
html.body.innerHTML = sResponse
With ThisWorkbook.Worksheets("Sheet1")
.Cells.ClearContents
.Cells.ClearFormats
Set clipboard = GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
clipboard.SetText html.getElementsByTagName("table")(3).outerHTML
clipboard.PutInClipboard
.Cells(1, 1).PasteSpecial
End With
End Sub