[prg] Макрос на vba на автоматическое сохранение таблицы
Здравствуйте. задача после открытия книги и до закрытия сохранять документ
каждые 10 секунд мой код: модуль книги:
Public oldValue As Variant
Private Sub Workbook_Open()
oldValue = False
Call myMacro
End Sub
макрос myMacro
Sub myMacro()
Application.OnTime Now() + TimeSerial(0, 0, 5), "myMacro"
ActiveWorkbook.Save
End Sub
2 проблемы, которые не знаю как решить: 1. после закрытия книги, она
автоматически открывается. понятно почему - продолжает выполняться
рекурсивный макрос, непонятно как исправить. 2. ведет себя не стабильно,
переодически предлагает перезаписать книгу и макрос валится, пока не
перезапустишь. что с этой ерундой делать - не знаю.
Здравствуйте, Петухов константин.
Прежде всего напомню, что в настройках Excel есть автосохранение. Правда
минимальный период там 1 минута и сохранение идёт во временный файл рядом с
основным. Однако возможно это всё же покрывает ваш сценарий.
Давно ничего не писал на VBA, но как-то резанула по глазам TimeSerial(0,
0,5).
Чисто визуально привычнее мне здесь TimeValue("00:00:10"), но я может просто
всё уже забыл.
Ну надо в конце полностью закрыть книгу
ThisWorkbook.Close false/true
false выход без сохранения, true - с сохранением. Кажется так.
Мне кажется, проблема в том, что период сохранения оказался слишком
коротким. Подозреваю, что иногда 10 секунд тупо не хватает, а вы уже даёте
команду на следующую итерацию сохранения. Попробуйте увеличить период
ожидания и посмотреть, будет ли это способствовать повышению стабильности
работы макроса.
Успехов. Никита.