2013-11-18 2 views
1

У меня есть 3 таблицы, которые я автоматически открываю каждое утро, используя планировщик задач. После открытия я использовал VBA для автоматического обновления, сохранения и закрытия каждого файла.Запуск макроса, если кнопка не нажата в определенное время

Код для этого отлично работает, но вызывает некоторые проблемы, если я хочу открыть электронные таблицы для их редактирования (я должен их открыть специально, чтобы не запускать макрос и, следовательно, автоматически закрывать). Я хочу иметь возможность открывать электронные таблицы, обычно редактируемые без их автоматического закрытия.

Возможным решением является появление всплывающего окна MsgBox. Если MsgBox не подтверждается в течение 15 секунд (или около того), файл автоматически закрывается. Если MsgBox подтвержден, то файл не закрывается.

Кто-нибудь знает, как это сделать?

+4

Вы можете открыть книгу, нажав SHIFT. Таким образом макрос не будет работать. Параметр Msgbox не является жизнеспособным вариантом, так как при отображении окна сообщения весь код будет стоять на месте. Макрос Excel не может выполняться асинхронно. Однако вы можете показать пользовательскую форму, которая может автоматически закрыться через 15 секунд. –

+0

Благодарим вас за предложение. Я пытаюсь показать пользовательскую форму, которая даст пользователю возможность установить флажок, чтобы открыть электронную таблицу. Если пользователь не установил флажок после 15 секунд, я хочу сохранить и закрыть таблицу. У меня возникли проблемы с написанием кода для этого. Вы можете помочь? – user3006532

+0

Пожалуйста, перечитайте мой комментарий выше. –

ответ

1

Первый
Создать подпрограмму с именем (Закрыть) с помощью следующего кода

Unload UserForm1 

Во-вторых, что называют процедуру через 15 секунд

Private Sub UserForm_Initialize() 
    tmeKill = Time + TimeValue("00:00:15")  
    Application.OnTime tmeKill, "Close" 
End Sub 
Смежные вопросы