VBA wiszące na ie.busy i sprawdzanie readystate

Próbuję pobrać niektóre dane piłkarza ze strony internetowej, aby wypełnić prywatną bazę danych. Załączam cały poniższy kod. Ta pierwsza sekcja to looper, który wywołuje drugą funkcję, aby wypełnić bazę danych. Uruchomiłem ten kod w MSAccess, aby wypełnić bazę danych zeszłego lata i działało świetnie.

Teraz mam tylko kilka zespołów do wypełnienia, zanim program się rozłączy

While IE.Busy Or IE.ReadyState <> READYSTATE_COMPLETE: DoEvents: Wend

Szukałem niezliczonych stron internetowych dotyczących tego błędu i próbowałem zmienić ten kod, wprowadzając sub-funkcję, aby poczekać kilka sekund lub inne obejścia. Żadne z nich nie rozwiązuje problemu. Próbowałem również uruchomić to na wielu komputerach.

Pierwszy komputer przeszedł przez 3 zespoły (lub trzy wywołania drugiej funkcji). Drugi wolniejszy komputer przechodzi przez 5 zespołów. Oboje ostatecznie się zawiesili. Pierwszy komputer ma Internet Explorer 10, a drugi IE8.

Sub Parse_NFL_RawSalaries()
  Status ("Importing NFL Salary Information.")
  Dim mydb As Database
  Dim teamdata As DAO.Recordset
  Dim i As Integer
  Dim j As Double

  Set mydb = CurrentDb()
  Set teamdata = mydb.OpenRecordset("TEAM")

  i = 1
  With teamdata
    Do Until .EOF
      Call Parse_Team_RawSalaries(teamdata![RotoworldTeam])
      .MoveNext
      i = i + 1
      j = i / 32
      Status("Importing NFL Salary Information. " & Str(Round(j * 100, 0)) & "% done")
    Loop
  End With


  teamdata.Close               ' reset variables
  Set teamdata = Nothing
  Set mydb = Nothing

  Status ("")                  'resets the status bar
End Sub

Druga funkcja:

Function Parse_Team_RawSalaries(Team As String)

    Dim mydb As Database
    Dim rst As DAO.Recordset
    Dim IE As InternetExplorer
    Dim HTMLdoc As HTMLDocument
    Dim TABLEelements As IHTMLElementCollection
    Dim TRelements As IHTMLElementCollection
    Dim TDelements As IHTMLElementCollection
    Dim TABLEelement As Object
    Dim TRelement As Object
    Dim TDelement As HTMLTableCell
    Dim c As Long

   ' open the table
   Set mydb = CurrentDb()
   Set rst = mydb.OpenRecordset("TempSalary")

   Set IE = CreateObject("InternetExplorer.Application")
   IE.Visible = False
   IE.navigate "http://www.rotoworld.com/teams/contracts/nfl/" & Team
   While IE.Busy Or IE.ReadyState <> READYSTATE_COMPLETE: DoEvents: Wend
   Set HTMLdoc = IE.Document

   Set TABLEelements = HTMLdoc.getElementsByTagName("Table")
   For Each TABLEelement In TABLEelements
       If TABLEelement.id = "cp1_tblContracts" Then
            Set TRelements = TABLEelement.getElementsByTagName("TR")
            For Each TRelement In TRelements
                If TRelement.className <> "columnnames" Then
                    rst.AddNew
                    rst![Team] = Team
                    c = 0
                    Set TDelements = TRelement.getElementsByTagName("TD")
                    For Each TDelement In TDelements
                        Select Case c
                            Case 0
                                rst![Player] = Trim(TDelement.innerText)
                            Case 1
                                rst![position] = Trim(TDelement.innerText)
                            Case 2
                                rst![ContractTerms] = Trim(TDelement.innerText)
                        End Select
                        c = c + 1
                    Next TDelement
                    rst.Update
              End If
          Next TRelement
      End If
  Next TABLEelement
  ' reset variables
  rst.Close
  Set rst = Nothing
  Set mydb = Nothing

  IE.Quit
End Function

questionAnswers(3)

yourAnswerToTheQuestion