Я получаю значения из Excel в скрипт Autoit. Скрипт Autoit работает независимо и не управляется Excel vba или et c. Все работает отлично, но значения Excel время от времени меняются с помощью vba, и здесь начинаются проблемы. Autoit получает значения из Excel каждые 500 мс c, но не может получить значения из Excel, пока vba обновляет значения, и это вызывает ошибку Autoit и прекращает выполнение скрипта. Я пытался обработать ошибку autoit, но не повезло. Цель, которую я хочу достичь, - это когда скрипт завершается ошибкой, спит в течение некоторого времени c и затем повторяется. Это мой скрипт
#include <Excel.au3>
#include <MsgBoxConstants.au3>
#include <FileConstants.au3>
#include "WinHttp.au3"
#include <Date.au3>
; Attach to the first Workbook where the file name matches
Local $sWorkbook = "Ant_5.xlsm"
$oWorkbook = _Excel_BookAttach($sWorkbook, "filename")
If @error Then
ConsoleWrite("Error attaching to '" & $sWorkbook & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Endif
Func getData()
$LastRow = $oWorkbook.Worksheets("Selector").UsedRange.Rows.Count
$mydata = _Excel_RangeRead($oWorkbook, "Selector", "A1:P" & $LastRow)
$i=0
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
For $i = 2 To $LastRow-1
if $mydata[$i][0]<>"" Then
$cDate=$mydata[$i][0]
$cTime=$mydata[$i][1]
$cRule=$mydata[$i][5]
ConsoleWrite($cRule& @CRLF)
EndIf
Next
EndFunc
getData()
Я имитирую ошибку, выбирая ячейку в Excel. После этого Autoit дает сбой, но мне нужно повторить попытку после того, как он получит данные.