R
Russ
I am working on code to extract data from a website. I am using
CreateObject("InternetExplorer.Application") to start IE. The code is far
from working perfectly but when I moved the code from an XP computer to a
Vista computer I can’t get past the “Do Until .readystate = 4†statement.
IE opens visible and I get the following error message:
“The object invoked has disconnected from its clientsâ€
I did not get this error on the XP computer.
The code is the following:
Sub Tester()
Dim objIE As Object
Dim allTabs, t, x As Integer
Dim r As Long, s As String, c As Long
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
.Visible = False
.Navigate "http://www.masters.org/en_US/scores/index.html"
Do Until .readystate = 4 ‘hangs on this statement on the Vista computer
DoEvents
Loop
With .document
Set allTabs = .getElementsByTagName("TABLE")
For Each t In allTabs
'table with scores is always greater than 30 and only table that
large on page
If t.Rows.Length > 29 Then
r = 2
For x = 1 To t.Rows.Length - 1
For c = 0 To 9
s = t.Rows(x).Cells(c).innerHTML
ActiveWorkbook.Sheets("Info").Cells(r, c + 1).Value
= s
Next c
r = r + 1
Next x
End If
Next t
End With
End With
End Sub
I have a feeling from looking up the error on the web that it may have
something to do with the added security of Vista. Has anyone else run up
against this problem? I see a lot of code samples here that use the same
code to open IE that I do.
CreateObject("InternetExplorer.Application") to start IE. The code is far
from working perfectly but when I moved the code from an XP computer to a
Vista computer I can’t get past the “Do Until .readystate = 4†statement.
IE opens visible and I get the following error message:
“The object invoked has disconnected from its clientsâ€
I did not get this error on the XP computer.
The code is the following:
Sub Tester()
Dim objIE As Object
Dim allTabs, t, x As Integer
Dim r As Long, s As String, c As Long
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
.Visible = False
.Navigate "http://www.masters.org/en_US/scores/index.html"
Do Until .readystate = 4 ‘hangs on this statement on the Vista computer
DoEvents
Loop
With .document
Set allTabs = .getElementsByTagName("TABLE")
For Each t In allTabs
'table with scores is always greater than 30 and only table that
large on page
If t.Rows.Length > 29 Then
r = 2
For x = 1 To t.Rows.Length - 1
For c = 0 To 9
s = t.Rows(x).Cells(c).innerHTML
ActiveWorkbook.Sheets("Info").Cells(r, c + 1).Value
= s
Next c
r = r + 1
Next x
End If
Next t
End With
End With
End Sub
I have a feeling from looking up the error on the web that it may have
something to do with the added security of Vista. Has anyone else run up
against this problem? I see a lot of code samples here that use the same
code to open IE that I do.