Ich habe ein Thema, wenn diese SchleifeVBA: Zugriff Absturz ohne Fehler beim Aufruf der Funktion
Public IE As InternetExplorer
Private Declare Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long)
Dim el As Object
Public Function IEClick(Idstr As String)
Do
Set el = Nothing
On Error Resume Next
Set el = IE.Document.getElementById(Idstr)
On Error GoTo 0
DoEvents
Sleep (100)
Loop While el Is Nothing
Sleep (1000)
IE.Document.getElementById(Idstr).Click
End Function
Sein Aufruf wahr, bis er die richtige elementID findet. Ich stürze mit keiner Fehlermeldung in dieser Zeile IEClick Str(Item)
, wenn die Funktion so aufgerufen wird.
For Each Item In coll
IEClick Str(Item)
p = p + 1
Next
Dies ist der vollständige Code.
Public Sub AutoExtract()
Dim ProgressBar_Extract As Object
Dim coll As Collection
Set coll = New Collection
'/////////////////controls in order///////////////
With coll
.Add "ctl00_cmdCustom"
.Add "chkAll"
.Add "ctl00_cmdContinue"
End With
Me.ProgressBar_Extract.Max = coll.Count
'////////////////////start ie//////////////////
Set IE = New InternetExplorerMedium
With IE
'.AddressBar = False
'.MenuBar = False
.Navigate ("*****")
.Visible = True
End With
'//////////////////////Start Automation///////////////////
For Each Item In coll
IEClick Str(Item)
p = p + 1
Next
MsgBox "Extract Complete"
End Sub
Ich verengte es auf IEClick Str(Item)
.Wenn das Debuggen, wenn ich einen Anschlag auf sie und Schritt zur nächsten Zeile setzen stürzt.
Was genau bedeutet "Absturz ohne Fehlermeldung" *? Es schließt ab? Oder es schließt sich (läuft dann der Access-Prozess noch?)? – Andre
@Andre schließt den Prozess wird nicht ausgeführt. – Quint
Als ersten Schritt empfehle ich eine vollständige [Decompile] (http://stackoverflow.com/a/3268188/3820271). – Andre