Номера меняются на сайте. Когда я сначала посмотрел, было 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