Hallo
Ich hab ein kleines Problem, bei dem ich auf eure Hilfe hoffe.
In meinem Script starte ich per Hotkeyset eine Funktion zur Bearbeitung eines Word-Dokuments.
Vor der Bearbeitung frage ich unter anderem einen Termin und die Anzahl an folgenden Terminen ab.
Der vom Benutzer eingegebene Termin wird anhand der Punkte zwischen Tag, Monat und Jahr geteilt und in eine Variable geschrieben.
Da der Benutzer nur die Anzahl der folgenden Termine angibt und der Abstand genau ein Monat ist, werden diese Termine vom Script generiert und in ein eigenes Array $termin geschrieben.
Spoiler anzeigen
Do
$day = $faell[1]
If $faell[2] = 12 Then
$faell[2] = 1
$faell[3] = $faell[3] + 1
Else
$faell[2] = $faell[2] + 1
EndIf
If $faell[2] = 2 And $faell[1] > 29 Then $day = 29
If $faell[2] = 4 And $faell[1] > 30 Then $day = 30
If $faell[2] = 6 And $faell[1] > 30 Then $day = 30
If $faell[2] = 9 And $faell[1] > 30 Then $day = 30
If $faell[2] = 11 And $faell[1] > 30 Then $day = 30
_ArrayAdd($termin, _Pad($day) & ". " & _Monat($faell[2]) & " " & ($faell[3]))
$atermine = $atermine - 1
Until $atermine = 1
Anschließend wird per _WordDocFindReplace der 1. Termin und alle weiteren Termine aus dem Array $termin in das Word-Dokument eingesetzt.
Hierbei passiert es nun ab und zu, dass das Script nach dem 2. Termin einfach stehen bleibt - scheinbar. Es passiert nichts sichtbares, das Script stürzt auch nicht mit einer entsprechenden Fehlermeldung ab.
Hat jemand eine Idee woran dies liegen kann oder noch besser, wie man diesen "Aufhängen" im Script erkennen und das Abarbeiten erneut anstoßen kann ?
Zur Verständnis der entsprechende Script-Code ab dem 2. Termin
Spoiler anzeigen
$countarray = UBound($termin)
_WordDocFindReplace($oDoc, "2. Termin am TT. Monat JJJJ", "2. Termin am " & $termin[1])
If $countarray > 2 Then _WordDocFindReplace($oDoc, "3. Termin am TT. Monat JJJJ", "3. Termin am " & $termin[2])
If $countarray > 3 Then
_WordDocFindReplace($oDoc, "4. Termin am TT. Monat JJJJ", "4. Termin am " & $termin[3])
EndIf
If $countarray > 4 Then
$nrtermin = 5
$x = 4
Send("^f")
WinWait("Suchen und Ersetzen")
Send("am " & $termin[3] & "{ENTER}")
Sleep(500)
If WinExists("Microsoft Office Word", "Der Suchvorgang innerhalb des Dokuments ist abgeschlossen. Das gesuchte Element konnte nicht gefunden werden.") Then
WinActivate("Microsoft Office Word", "Der Suchvorgang innerhalb des Dokuments ist abgeschlossen. Das gesuchte Element konnte nicht gefunden werden.")
Send("{ENTER}")
Send("{ESC}")
Else
Send("{ESC}")
WinWaitClose("Suchen und Ersetzen")
Sleep(300)
Send("{RIGHT}{ENTER}")
Sleep(50)
;Send("{ENTER}")
While $x < $countarray
Send($nrtermin & ". Termin am " & $termin[$x] & " ")
Sleep(100)
$nrtermin = $nrtermin + 1
$x = $x + 1
If $x < $countarray Then Send("{ENTER}")
WEnd
EndIf
EndIf
[/autoit]