Я создал небольшой скрипт, который берет некоторые данные из таблицы веб-сайта и заполняет их в ячейки в Excel. Мне это нужно для того, чтобы упростить поиск по этим данным и их фильтрацию. Однако я столкнулся с небольшой проблемой: каждый раз, когда я запускаю свой сценарий, он выполняет то, что должен делать, для примерно 9-11 страниц (около 250 записей в ячейках), а затем останавливается с появлением сообщения об ошибке, говорящего об объекте «Ошибка выполнения 91». переменная или с блочной переменной не установлена. Он никогда не проходит до конца, и я получаю лишь небольшую часть данных, которые я должен был получить.
Я не эксперт по программированию и даже не эксперт по VBA, поэтому, если я делаю что-то не так, пожалуйста, дайте мне знать. Я застрял на этой проблеме в течение нескольких дней. Я не знаю, что делать, чтобы решить эту проблему. Я искал исправления в Google, YouTube и даже на собственном веб-сайте Microsoft, но не могу понять, почему эта ошибка появляется в моем собственном сценарии.
Я знаю, что эта проблема возникает, когда; 1) вы пытаетесь использовать переменную объекта, которая еще не ссылается на действительный объект, или когда 2) вы пытаетесь использовать переменную объекта, для которой было установлено значение Nothing. Но я не могу понять, в какой части моего кода я делаю эту ошибку. Помощь высоко ценится.
UPDATE:
Когда я начинаю номер страницы, скажем, с 8 и до 15, у него нет проблем с извлечением этих данных с сайта, поэтому я не думаю, что это имеет какое-либо отношение к конкретным номерам страниц (я могу ошибаться в этом ). Но когда я устанавливаю номер страницы 17 вместо 15, сообщение об ошибке появляется почти сразу. Итак, может ли это быть диапазон между страницами, который вызывает это?
ОБНОВЛЕНИЕ 2:
Это также противоречиво, когда всплывает сообщение об ошибке, когда я снова запускаю скрипт с теми же номерами страниц (от 8 до 17), он проходит весь процесс без сбоев. (Странно) Затем я изменяю номера страниц с (8 до 18), и он проходит через 2 страницы и останавливается.
ОБНОВЛЕНИЕ 3:
Возможно ли, что это происходит, потому что меня ограничивают по скорости?
Sub GrabInfo()
Dim objIE As InternetExplorer
Dim r As Integer
Dim p As Integer
Dim c As Integer
r = 0
p = 0
c = 0
Dim sDD1 As String
Dim sDD2 As String
Dim sDD3 As String
Set objIE = New InternetExplorer
'objIE.Visible = True
Do While p < 53
p = p + 1
'Setting row to zero after the new page loads but before the data gets pulled
r = 0
objIE.navigate "URLGOESHERE.com/123456789?pageNum=" & p
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
Do While r < 25
'Increment the row (gets reset after each page)
r = r + 1
'Increment the cell (never gets reset)
c = c + 1
'Pulling data from site row by row and setting each child to temp sDD strings
sDD1 = objIE.document.getElementsByClassName("table-content")(r - 1).Children(0).innerText
sDD2 = objIE.document.getElementsByClassName("table-content")(r - 1).Children(2).innerText
sDD3 = objIE.document.getElementsByClassName("table-content")(r - 1).Children(3).innerText
Debug.Print sDD1 & " | " & sDD2 & " | " & sDD3 & " - " & _
"Cell # = " & c & " ROW # = " & r & " PAGE # = " & p
'Filling in the temp sDD strings into excel cells
Range("A" & (c + 1)).Value = sDD1
Range("B" & (c + 1)).Value = sDD2
Range("C" & (c + 1)).Value = sDD3
Loop
Loop
End Sub