From: Russ on
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.

--
russ
From: Russ on
I never received a response to my question but after more web searching I
found the answer.

If anyone stumbles on my question in regard to a similar problem, see this
link for the solution:
www.mjtnet.com/blog/category/vista
The topic is "Web Automation in Vista"
I hope this helps someone.
Russ

--
russ


"Russ" wrote:

> 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.
>
> --
> russ