Запускать событие при изменении даты в ячейке A1 - PullRequest
2 голосов
/ 12 июня 2019

Нужно ваше мнение о том, как запускать событие при изменении даты в ячейке A1.Текущая формула в ячейке A1: = Today ().

Этот код не работает для меня:

Private Sub Worksheet_Change(ByVal Target As Range)

  If Target.Address = "$A$1" Then

    MsgBox "Another day has come!"

  End If

End Sub

Пример.Что должно произойти, если в 11:59 вечера (11 июня 2019 года) и на следующий день, в 12:00 утра (12 июня 2019 года), процедура будет запущена автоматически.

Спасибо, ребята.

Ответы [ 2 ]

2 голосов
/ 12 июня 2019

Я бы использовал B1 в качестве ячейки памяти. Используя предложение BigBen:

Private Sub Worksheet_Calculate()
    Application.EnableEvents = False
        If [B1] = "" Then
            [B1] = [A1]
        ElseIf [B1] <> [A1] Then
            [B1] = [A1]
            MsgBox "Another day has come!"
        End If
    Application.EnableEvents = True
End Sub
0 голосов
/ 12 июня 2019

Еще одна возможность, использовать Application.ontime для запуска каждый день:

Public myBool As Boolean
Sub StartNextday()
    If myBool Then MsgBox "Another day has come!"
        Application.OnTime TimeSerial(0, 0, 0), "StartNextday"
        myBool = True
End Sub
Sub CloseNextday()
        Application.OnTime TimeSerial(0, 0, 0), "StartNextday", , False
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...