2016-11-17 108 views
1

問題:我目前遇到了一些問題,關閉一個沒有內容的「過早」互聯網窗口。退出錯誤Internet Explorer窗口

prematured window

基本上,如果這種「早熟」窗口打開時,我的宏不設法選擇我感興趣的窗口,但只要我手動關閉此「早熟」的窗口,我可以正確運行我的代碼。 它的來源來自一個小錯誤,它以某種方式打開它,但除了那個窗口不影響其餘的代碼。

測試完成:

Dim Widow As Object, page_foireuse As SHDocVw.InternetExplorer 
Dim objShell As Object 
Set objShell = CreateObject("Shell.Application") 

    MsgBox objShell.Windows.Count 
' MsgBox objShell.Windows(0).document.Title 
' MsgBox objShell.Windows(1).document.Title 
' MsgBox objShell.Windows(2).document.Title 
' MsgBox objShell.Windows(3).document.Title 
' MsgBox objShell.Windows(4).document.Title 
' MsgBox objShell.Windows(5).document.Title 
' MsgBox objShell.Windows(6).document.Title 


'For Each Widow In objShell.Windows 
' If Widow.document.Title Is Nothing Then ' this doesn't work 
'  Set page_foireuse = Widow 
' End If 
'Next 

' 
'If objShell.Windows(5).document.Title Is Nothing Then 
'End If 
     Set page_foireuse = objShell.Windows(5) 
    page_foireuse.Quit 

MsgBox objShell.Windows.Count 

結果至今:

  1. 當我算在shell窗口的數量,這種 「早熟」 窗口也算
  2. 當我返回每個計數窗口的位置或標題時,在嘗試返回「提前」窗口的位置或標題時出現錯誤
  3. 兩個循環我試圖在這一端運行沒有工作

所以我的問題是:如何通過關閉這個「早熟」窗口宏?

+0

你什麼錯誤,在哪裏(哪一行代碼)? – dee

+0

當我嘗試msgBox這個頁面的標題它不起作用,錯誤描述返回_Automation錯誤,未指定錯誤_ – Seb

回答

1

您的問題中的圖像頁面看起來很奇怪,沒有位置,沒有標題。試試下面的代碼,但上線Set doc = ie.document設置斷點,並檢查是否docNothing等HTH

' Add reference to Microsoft Internet Controls (SHDocVw) 
' Add reference to Microsoft HTML Object Library 
' Add reference to Microsoft Shell Controls And Automation 

Dim ie As SHDocVw.WebBrowser 
Dim doc As HTMLDocument 
Dim shellApp As Shell32.Shell 
Dim windows As SHDocVw.ShellWindows 
Dim window 

Set shellApp = New Shell 
Set windows = shellApp.windows 

For Each window In windows 
    If Not UCase(window.FullName) Like "*IEXPLORE.EXE" Then GoTo continue 
    Set ie = window 
    Set doc = ie.document 
    If doc.Title = "" Then 
     ie.Quit 
     Exit For 
    End If 
continue: 
Next window 
+0

我試過了。正如你計劃的那樣,它是在Set doc = ie.document這一行中,當我們經歷的那個「過早」窗口時代碼會被破壞。返回的錯誤與上面提到的相同。這很奇怪,因爲這個頁面可以被統計,所以它以某種方式被識別,但是因爲沒有鏈接被鏈接,所以似乎不可能選擇它。同樣在我的測試代碼中,我可以發現哪個窗口是「不成熟」的窗口,然後如果我嘗試退出它,它實際上會退出計數器之後的窗口。 '設置page_foireuse = objShell.Windows(5) page_foireuse.Quit' – Seb

+0

好吧,這是一個恥辱,我設法找到錯誤,並避免在這個「過早」的網頁上打開。然後關閉它仍然是一個謎。不幸的是,由於這個網頁來自內部網,很難給你一個可訪問的例子來與之聯繫,謝謝你的支持! – Seb

+0

不客氣,祝你好運! :) – dee