У меня есть то, что уведомляет меня за час до этого. Для этого я использую функцию NOW в VBA, так как мне нужно, чтобы она также проверяла дату.VBA - Удалить секунды из функции СЕЙЧАС
Проблема заключается в том, что сценарий запускается каждые 20 секунд, поэтому я не могу считать его секундой для функции NOW.
Есть ли способ удалить их? Нужно только (ДЕНЬ, МЕСЯЦ, ГОД, ЧАС, МИНУТ)?
Что-то вдоль этих линий:
MyLimit = NOW(DAY,MONTH,YEAR,HOUR,MINUTE)
For Each FormulaCell In FormulaRange.Cells
With FormulaCell
If .Value = MyLimit Then
Call Notify
Вот сценарий, в котором я пытаюсь обнаружить дату и время.
Option Explicit
Public Function AutoRun()
Application.OnTime Now + TimeValue("00:00:20"), "TaskTracker2"
End Function
Public Sub TaskTracker2()
Dim FormulaCell As Range
Dim FormulaRange As Range
Dim NotSentMsg As String
Dim MyMsg As String
Dim SentMsg As String
Dim SendTo As String
Dim CCTo As String
Dim BCCTo As String
Dim MyLimit As Date
NotSentMsg = "Not Sent"
SentMsg = "Sent"
SendTo = Range("D2")
CCTo = Range("E2")
BCCTo = Range("F2")
MyLimit = Format((Now), "DD/MM/YYYY HH:MM")
Set FormulaRange = Range("E5:E35")
On Error GoTo EndMacro:
For Each FormulaCell In FormulaRange.Cells
With FormulaCell
If .Value = MyLimit Then
MyMsg = SentMsg
If .Offset(0, 1).Value = NotSentMsg Then
strTO = SendTo
strCC = CCTo
strBCC = BCCTo
strSub = "[Task Manager] Reminder that you need to: " & Cells(FormulaCell.Row, "A").Value
strBody = "Hello Sir, " & vbNewLine & vbNewLine & _
"This email is to notify that you that your task : " & Cells(FormulaCell.Row, "A").Value & " with the following note: " & Cells(FormulaCell.Row, "B").Value & " is nearing its Due Date." & vbNewLine & "It would be wise to complete this task before it expires!" & _
vbNewLine & vbNewLine & "Truly yours," & vbNewLine & "Task Manager"
If sendMail(strTO, strSub, strBody, strCC) = True Then MyMsg = SentMsg
End If
Else
MyMsg = NotSentMsg
End If
Application.EnableEvents = False
.Offset(0, 1).Value = MyMsg
Application.EnableEvents = True
End With
Next FormulaCell
AutoRun
ExitMacro:
Exit Sub
EndMacro:
Application.EnableEvents = True
MsgBox "Some Error occurred." _
& vbLf & Err.Number _
& vbLf & Err.Description
End Sub
Это сработало Magic! Спасибо, я прошел через так много возможностей! –
Если бы я хотел получить уведомление, как за 30 минут до СЕЙЧАС, как бы я это сделал? Я не очень хорошо писал несколько модификаций функции: P –
@FrancisMaltais Просто добавьте 30 минут до 'MyLimit', прежде чем выполнять сравнение. 30 минут = 30/1440 или 'Timeserial (0,30,0)' –