Контекст
Я использую метод Application.OnTime
в Excel VBA для отслеживания того, над чем я работаю, каждые 15 минут. Я ввожу некоторый текст, который описывает то, что я делаю, и затем, когда я нажимаю ОК, подпрограмма добавляет этот текст в список со временем, на которое запланирован запуск ящика.
Я специально хочу использовать времято, что ящик был запланирован для запуска, так как это означает, что я могу заполнить поле позже, если я буду далеко от своего стола, но ввод будет по-прежнему соответствовать желаемому времени.
Примечаниечто я использую 32-разрядную версию Office 365.
Проблема
В настоящий момент проблема заключается в том, что, если я нахожусь достаточно далеко от своего рабочего стола, может быть создано несколько полей ввода. Когда я возвращаюсь, чтобы заполнить то, что я делал, порядок ящиков не совпадает с порядком, в котором они были запланированы - вместо этого первый ящик - это самый ранний ящик, но после того, как этот был в порядке,Остальные появляются с самыми последними. Кажется, что поля ввода складываются вместо очереди.
Это нежелательно, так как мой список находится не в порядке возрастания. Есть ли способ изменить это поведение блоков ввода?
Рабочий пример
Рабочий пример приведен ниже.
Public Sub Scheduler()
Dim i As Integer
Dim AtTime As Double
For i = 1 To 5
AtTime = Time + (TimeSerial(0, 0, 2) * i)
Application.OnTime AtTime, "'InputBoxExample " & AtTime & "'"
Next i
End Sub
Public Sub InputBoxExample(Box_Time As Double)
Debug.Print Format(Box_Time, "hh:mm:ss"), InputBox(prompt:="Put in some input.", Title:="Scheduled at: " & Format(Box_Time, "hh:mm:ss"))
End Sub
Если это выполняется, оставьте на более чемЧерез 10 секунд, после чего все поля будут в порядке (без ввода текста), в ближайшем окне появится (вариант) следующее:
15:07:01
15:07:09
15:07:07
15:07:05
15:07:03
Я бы предпочел, чтобы следующий список былгенерируется, даже если я вернусь к полям ввода намного позже:
15:07:01
15:07:03
15:07:05
15:07:07
15:07:09