Prev: Range.Group Method - group rows, not columns
Next: How to add a combo box in a cell using the office web component 11
From: Russ on 8 May 2008 21:12 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 15 May 2008 20:30
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 |