Как ждать, пока мы будем работать с открытым Excel и продолжить код ruby после его закрытия вручную
Я пытаюсь добиться ниже вещь в Ruby
Откройте Excel
require 'win32ole' excel = WIN32OLE.new('Excel.Application') worksheet = application.Workbooks.Open("C:/testing.xlsx").Worksheets("Sheet1") excel.visible = true
Сделайте необходимые изменения в этом открытом Excel вручную, я бы хотел, чтобы программа ruby подождала, пока я внесу эти изменения.
Как только необходимые изменения сделаны, я закрываю этот Excel вручную, используя кнопку закрытия (X).
Программа ruby должна продолжиться и продолжить выполнение следующего шага.
1 ответ
Прежде всего, где у вас есть
worksheet = application.Workbooks.Open("C:/testing.xlsx").Worksheets("Sheet1")
Я думаю ты имеешь ввиду
worksheet = excel.Workbooks.Open("C:/testing.xlsx").Worksheets("Sheet1")
В любом случае, вы можете определить, сколько рабочих книг открыто в экземпляре Excel, так что вы можете сделать
while excel.Workbooks.count > 0 do
sleep(5)
end
и ваш сценарий будет находиться там, бесконечно опрашивая, пока книга не будет закрыта, а затем продолжит работу.
Обратите внимание, что экземпляр Excel по-прежнему будет работать невидимо после того, как пользователь закроет его; вы можете позвонить
excel.Quit
excel.ole_free
чтобы очистить это.