Autoit получить значения Excel - PullRequest
0 голосов
/ 03 марта 2020

Я получаю значения из 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 дает сбой, но мне нужно повторить попытку после того, как он получит данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...