Автор Тема: Как игнорировать сообщение об ошибки и продолжить работу скрипта  (Прочитано 170 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн Grell [?]

  • Новичок
  • *
  • Сообщений: 87
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Версия AutoIt: 3.
Описание:
Здравствуйте.
Имеется скрипт, который выдает ошибку в консоли:
$oExcel.Run("test")
$oExcel^ ERROR
При этом сам  скрипт - свою задачу прекрасно выполняет (перед тем как выдать ошибку).
В общем проблема только в том, что этот скрипт срабатывает только один раз - и его приходится запускать по новой.

Как сделать, чтобы этот скрипт - не реагировал на $oExcel^ ERROR и не вылетал после нее, а продолжал бы работу ?
(нажмите для показа/скрытия)
Примечания:

Сейчас использую вот такой дополнительный скрипт, чтобы решить эту проблему.
Но он какой-то уж слишком примитивный:
(нажмите для показа/скрытия)
« Последнее редактирование: Декабрь 08, 2018, 21:20:32 от Grell »

Русское сообщество AutoIt


Оффлайн ra4o [?]

  • Скриптер
  • ****
  • Сообщений: 830
  • Репутация: 149
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Так работать с Excel у Вас не получится, посмотрите примеры, описание функций по работе с Excel.
Я думаю , нужно , как минимум добавить строку
Код: AutoIt [Выделить]
$oExcel=_Excel_Open()

От " $oExcel.Run("test")" Вы чего ожидаете ? Опишите, что Вы хотите добиться работой своего скрипта ?
Цитировать
При этом сам  скрипт - свою задачу прекрасно выполняет
Если работа с Excel не входит в задачи скрипта , уберите всё, что касается Excel, в таком виде , как есть Ваша функция "_Example()" работать НЕ будет !
« Последнее редактирование: Декабрь 08, 2018, 23:08:55 от ra4o »

Оффлайн Grell [?]

  • Новичок
  • *
  • Сообщений: 87

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
ra4o  [?]
Цитировать
Если работа с Excel не входит в задачи скрипта , уберите всё, что касается Excel
Ну так скрипт - прекрасно выполняет свою задачу именно в экселе.
Он запускает экселевский макрос из экселя.

Насчет $oExcel=_Excel_Open()  - то файл xls уже открыт на момент запуска скрипта - и по-новой открывать его не надо.

Единственная проблема - это вылетающее со звуком окно "Autoit error".
Это окно вылетает тогда - когда скрипт свою задачу уже выполнил.

Сейчас использую вот такой дополнительный скрипт, чтобы решить эту проблему.
Но все равно окошко хоть и ненадолго вылетает, шумит - в общем мешает.
(нажмите для показа/скрытия)

Как основному скрипту вообще проигнорировать это вылетающее окно, чтобы оно не появлялось всякий раз со звуком ?
Может есть какой-то способ ?
Например условие - если скрипт выдает ошибку - то запретить появление "окна ошибки".



Оффлайн ra4o [?]

  • Скриптер
  • ****
  • Сообщений: 830
  • Репутация: 149
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Цитировать
Ну так скрипт - прекрасно выполняет свою задачу именно в экселе.
В таком случае уберите строку "$oExcel.Run("test")" на которую он ругается.
Цитировать
Он запускает экселевский макрос из экселя.
Каким образом он это делает ?
Может не нужен макрос , а всё напишите на AutoIt ?

Русское сообщество AutoIt


Оффлайн Grell [?]

  • Новичок
  • *
  • Сообщений: 87

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
ra4o  [?]
Цитировать
В таком случае уберите строку "$oExcel.Run("test")" на которую он ругается.
А как же тогда скрипт - будет макрос из экселя запускать ?



Добавлено: Декабрь 09, 2018, 00:04:19
ra4o  [?]
Цитировать
Может не нужен макрос , а всё напишите на AutoIt ?
Так вот AutoIt и дает команду - на запуск макроса из экселя.

Оффлайн ra4o [?]

  • Скриптер
  • ****
  • Сообщений: 830
  • Репутация: 149
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Цитировать
Насчет $oExcel=_Excel_Open()  - то файл xls уже открыт на момент запуска скрипта - и по-новой открывать его не надо
_Excel_Open() - Подключается к существующему экземпляру Excel или создает новый

Оффлайн Grell [?]

  • Новичок
  • *
  • Сообщений: 87

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
ra4o, поставил строку $oExcel=_Excel_Open()
По-прежнему скрипт выдает окно с той же ошибкой.

Оффлайн ra4o [?]

  • Скриптер
  • ****
  • Сообщений: 830
  • Репутация: 149
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Вот, что я имел в виду :
Код: AutoIt [Выделить]
$oExcel=_Excel_Open()
$oBook=_Excel_BookAttach(@ScriptDir & "\1.xls")
$oBook.Application.Run("test")
 

Или ещё проще :
Код: AutoIt [Выделить]
$oExcel=_Excel_Open()
$oExcel.Run("test")

« Последнее редактирование: Декабрь 09, 2018, 02:47:42 от ra4o »

Русское сообщество AutoIt


Оффлайн Grell [?]

  • Новичок
  • *
  • Сообщений: 87

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
ra4o
При обоих вариантах - по-прежнему вылетает окно ошибки.

Так я же спрашиваю о том - как проигнорировать ошибку и продолжить работу скрипта.

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2810
  • Репутация: 473
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Запуск макроса
ошибка выпадает потому, что переменная не является объектом. значит проверка на наличие объекта
Код: AutoIt [Выделить]
If IsObj($oBook) Then $oBook.Application.Run("test")

« Последнее редактирование: Декабрь 09, 2018, 08:51:18 от joiner »
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Оффлайн ra4o [?]

  • Скриптер
  • ****
  • Сообщений: 830
  • Репутация: 149
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
joiner, в этом случае не запустится макрос, но меня очень смущает то, что Grell утверждает в том, что макрос у него отрабатывает, хоть на этой строке и ошибка :think:

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
1 Ответов
3005 Просмотров
Последний ответ Май 24, 2010, 08:49:57
от CreatoR
5 Ответов
2960 Просмотров
Последний ответ Февраль 26, 2013, 00:29:27
от Ganibal95
6 Ответов
3863 Просмотров
Последний ответ Июнь 24, 2013, 18:34:57
от asdf8
3 Ответов
1812 Просмотров
Последний ответ Август 23, 2015, 17:40:03
от eralex
1 Ответов
1640 Просмотров
Последний ответ Октябрь 10, 2013, 22:54:48
от C2H5OH
11 Ответов
4295 Просмотров
Последний ответ Апрель 06, 2014, 13:03:26
от Researcher
3 Ответов
1730 Просмотров
Последний ответ Май 07, 2014, 16:15:48
от DesMono
11 Ответов
3087 Просмотров
Последний ответ Июль 11, 2014, 11:04:17
от Jigan777
12 Ответов
1295 Просмотров
Последний ответ Октябрь 30, 2017, 09:18:45
от musicstashall
2 Ответов
292 Просмотров
Последний ответ Февраль 27, 2018, 21:27:13
от dr.room