У меня проблема с тем, что этот процесс периодически перестанет быть в состоянии найти открытое окно IE. Как вы можете видеть, я отлаживаю URL каждого открытого окна, поэтому легко увидеть, когда окно просто не включено в список объектов, через которые оно проходит. Закрытие Excel и повторное его открытие, похоже, решают проблему, но я не могу найти причину. Есть идеи? Или, альтернативно, есть ли другой процесс, который я мог бы использовать, чтобы установить существующий объект IE по имени или URL?
Public Function GetWindow(name As String)
Dim ie As InternetExplorer
Dim l As Integer
Dim TestStr As String
Dim ShellW As ShellWindows
Set ShellW = New ShellWindows
On Error Resume Next
If ShellW.Count > 0 Then
For l = 0 To ShellW.Count - 1
TestStr = ""
TestStr = ShellW(l).LocationURL
If TestStr <> "" Then
Debug.Print TestStr
End If
If InStr(TestStr, name) > 0 Then
If ShellW(l).Visible = True Then
If ie Is Nothing Then Set ie = ShellW(l): Exit For
End If
End If
Next l
End If
Set GetWindow = ie
End Function