Вы не получили фактическую ошибку? Он работает не так, как ожидалось.
Мэтт Клеменс определил вашу проблему, я считаю, вы указали CurrentTime
как тип данных даты. Тип данных даты хранит номер , представляющий время/дату, однако вы также просите его хранить информацию о строках (AM/PM), которая не может быть удалена.
Результаты могут содержать значение типа «10: 30 AM», но код Format(Now(), "hh:mm AM/PM")
, входящий в переменную Date
, приводит к «10: 30: 00», поэтому два никогда не соответствуют строкам. Скопируйте, как предложил Мэтт, и это должно работать (Dim CurrentTime As String
).
еще лучше использовать функцию сравнения Дата DateDiff
: -
If DateDiff("s",ActiveSheet.Range("I1"),Time()) > 0 then
SendEmail
End If
Это говорит, если время больше, чем значение в I1
(на второй), а затем запустить SendEmail
.
Я думаю, что 'Format' возвращает строку. Можете ли вы попробовать «Dim CurrentTime as String» и посмотреть, что это делает? –
Это работает для меня в Excel 2013. Какова ошибка, которую вы получаете? –
LOL, у Outlook есть эта функция, для случаев, когда вы хотите отправить электронную почту поздно ночью (так что ваш босс считает, что вы работаете круглосуточно) –