Здравствуйте. Прошу помочь с решением задачи автоматического сохранения файла каждые 10-20 секунд. Это условие обусловлено тем, что Excel выступает посредником при передаче данных от ПЛК (программируемый логический контроллер на производстве) и SQL сервером, который и хранит эти данные. Цепочка выглядит так : ПЛК -> OPC сервер -> Excel 2007 -> SQL Excel в реальном времени DDE командами забирает данные зацикленный код типа :
[vba]
Код
Sub AutoSave() Do Until False Application.Wait (DateAdd("s", 20, Now())) ActiveWorkbook.Save Loop End Sub
[/vba]
файл, конечно, каждые 20 секунд сохраняет, но файл данные с OPC сервера не обновляются и реальные параметры в SQL не записываются
Здравствуйте. Прошу помочь с решением задачи автоматического сохранения файла каждые 10-20 секунд. Это условие обусловлено тем, что Excel выступает посредником при передаче данных от ПЛК (программируемый логический контроллер на производстве) и SQL сервером, который и хранит эти данные. Цепочка выглядит так : ПЛК -> OPC сервер -> Excel 2007 -> SQL Excel в реальном времени DDE командами забирает данные зацикленный код типа :
[vba]
Код
Sub AutoSave() Do Until False Application.Wait (DateAdd("s", 20, Now())) ActiveWorkbook.Save Loop End Sub
[/vba]
файл, конечно, каждые 20 секунд сохраняет, но файл данные с OPC сервера не обновляются и реальные параметры в SQL не записываютсяsergemat
Hugo, Да, это тоже выход. Правда параметры меняются 1 раз в секунду но это я могу настроить OPC сервером. Не подскажете, как это можно реализовать?
Hugo, Да, это тоже выход. Правда параметры меняются 1 раз в секунду но это я могу настроить OPC сервером. Не подскажете, как это можно реализовать?sergemat
Подскажу - ставите на лист текстбокс (можно его сделать невидимым), завязываете на ячейку A1 (или сколько там, может A25489 - Вы не показали), на события текстбокса пишите сохранение файла. Как сменится время - файл начнёт сохраняться. Правда не факт что он за 10 секунд успеет сохраниться 10 раз...
Подскажу - ставите на лист текстбокс (можно его сделать невидимым), завязываете на ячейку A1 (или сколько там, может A25489 - Вы не показали), на события текстбокса пишите сохранение файла. Как сменится время - файл начнёт сохраняться. Правда не факт что он за 10 секунд успеет сохраниться 10 раз...Hugo
Можно и так. Только по событию закрытия книги посоветую скинуть Application.OnTime, как указано в хелпе. Тем болеее что переменная времени уже есть, только сделайте её глобальной.
Можно и так. Только по событию закрытия книги посоветую скинуть Application.OnTime, как указано в хелпе. Тем болеее что переменная времени уже есть, только сделайте её глобальной.Hugo