Поскольку я не могу комментировать ответ @ Матье (пока недостаточно репутации), вам также следует проверить, выбрана ли у вас только одна ячейка. Это может быть не очень полезно в случае события двойного щелчка, но будет время, когда вы будете повторно использовать этот код для другого намерения (возможно, для события Worksheet_SelectionChange
), когда это событие может быть вызвано множественным выбором , В этом случае значение Column вернет самый левый столбец. Если он соответствует критериям .Column =1
, тогда весь ваш выбор будет заполнен датой, которая может расстроить вас, если вы потеряете данные в своей таблице.
Итак, не забудьте просто добавить And Target.Count = 1
к вашему If
утверждению.
PS: Хорошая практика - заставить IDE VBA требовать явного объявления переменной , я удивлен, что Матье не указал на это. Кроме того, использование переменной dateVariable
необязательно. Просто используйте Target = CalendarForm.GetDate
или даже лучше: Target.Value = CalendarForm.GetDate