Ich bin an einem Punkt in der Automatisierung eines Prozesses, wo ich auf die Frame-Benachrichtigungsleiste in IE11 zugreifen muss - Ich habe den folgenden Code nützlich gefunden, aber erhalten Sie einen "Typ Mismatch" auf die LinieIE11 Frame-Benachrichtigungsleiste - Klicken Sie auf "Speichern"
h = ie.Hwnd
Ist es, weil ich IE als internetexplorermedium erklärt haben?
Option Explicit
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
(ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long
Sub lime()
Application.DisplayAlerts = False
Dim ie As SHDocVw.InternetExplorer
Dim doc As HTMLDocument
Set ie = CreateObject("InternetExplorer.Application")
Set ie = New InternetExplorerMedium
ie.Visible = True
ie.Navigate ("http://xxx/")
Doodly ie
Muddly ie
Set doc = ie.Document
doc.getElementById("ctl32_ctl04_ctl03_ddValue").Value = "4"
doc.parentWindow.execScript "__doPostBack('ctl32$ctl04$ctl03$ddValue','')", "JavaScript"
Application.Wait (Now() + TimeValue("00:00:05"))
doc.getElementById("ctl32_ctl04_ctl05_ddValue").Value = "1"
doc.getElementById("ctl32_ctl04_ctl00").Click
Application.Wait (Now() + TimeValue("00:00:05"))
doc.parentWindow.execScript "$find('ctl32').exportReport('EXCELOPENXML')", "JavaScript"
Application.Wait (Now() + TimeValue("00:00:05"))
Dim o As IUIAutomation
Dim e As IUIAutomationElement
Set o = New CUIAutomation
Dim h As Long
h = ie.Hwnd
h = FindWindowEx(h, 0, "Frame Notification Bar", vbNullString)
If h = 0 Then Exit Sub
Set e = o.ElementFromHandle(ByVal h)
Dim iCnd As IUIAutomationCondition
Set iCnd = o.CreatePropertyCondition(UIA_NamePropertyId, "Save")
Dim Button As IUIAutomationElement
Set Button = e.FindFirst(TreeScope_Subtree, iCnd)
Dim InvokePattern As IUIAutomationInvokePattern
Set InvokePattern = Button.GetCurrentPattern(UIA_InvokePatternId)
InvokePattern.Invoke
End Sub
Sub Doodly(ie)
Do
DoEvents
Loop Until ie.readystate = 4
End Sub
Sub Muddly(ie)
Do While ie.busy
DoEvents
Loop
End Sub
das Projekt nicht kompilieren, erhalte ich eine „Typenkonflikt“ Fehler auf der Zeile „h = ie.Hwnd“, bin ich einen Verweis oder etwas fehlt? Excel 2010 – antd
Haben Sie "Dim ie As SHDocVw.InternetExplorer" manuell eingegeben - oder bietet IntelliSense Ihnen das SHDoc-Schlüsselwort während der Eingabe an? – dbmitch
Ich habe alles manuell hinzugefügt Ich habe IntelliSense nicht verwendet – antd