2016-06-24 8 views
0

Ich versuche, einen Code zu erstellen, der einen Platzhaltertext abhängig vom Datum ersetzt. Diese E-Mails müssen im Zusammenhang mit Berichten gesendet werden, die an bestimmten Daten jeden Monat (7., 14., 21. und 28.) generiert werden. Ich habe Code vorhanden, Platzhaltertext zu ersetzen, ich kann einfach nicht herausfinden, wie das Datum bestimmt wird, das verwendet wird (z. B. den Bericht für # DATUM #)Outlook VBA - Text je nach Datum ersetzen

Wenn der aktuelle Tag des Monats ist am oder nach dem 7. Tag des Monats, aber vor dem 14., möchte ich das Datum bis zum 7. Tag des aktuellen Monats ändern. (z. B. bitte den Bericht für den 7. Juni 2016 vorlegen).

Wenn der aktuelle Tag des Monats am oder nach dem 28. Tag des Monats, aber vor dem 7. des nächsten Monats ist, möchte ich das Datum bis zum 28. Tag des Monats ändern. (z. B. Bitte den Bericht für den 28. Juni 2016 vorlegen), etc.

Ich habe versucht, wenn Aussagen zu verwenden und den aktuellen Datumstag in eine Zeichenkette zu setzen, aber das funktioniert nicht.

Date1 = Format(Date, "dd") 

If Date1 >= 7 And Date1 <= 13 Then 
Date2 = "7th" 
Else 

If Date1 >= 14 And Date1 <= 20 Then 
Date2 = "14th" 
Else 

If Date1 >= 21 And Date1 <= 27 Then 
Date2 = "21st" 
Else 
End If 

If Date1 >= 28 And Date1 <= 31 Then 
Date2 = "28th" 
Else 

If Date1 >= 1 And Date1 <= 6 Then 
Date2 = "28th" 
Else 

End If 
End If 
End If 
End If 

obj.Subject = Replace(obj.Subject, "#DATE#", Date2) 
obj.HTMLBody = Replace(obj.HTMLBody, "#DATE#", Date2) 

Kann jemand Hilfe leisten?

Antwort

0
Sub test() 

Date1 = Format(Date, "dd") 
curMonth = Format(Now, "mmmm yyyy") 

Select Case Date1 
    Case Is >= 28 
     Date2 = "28th " & curMonth 
    Case Is >= 21 
     Date2 = "21st " & curMonth 
    Case Is >= 14 
     Date2 = "14th " & curMonth 
    Case Is >= 7 
     Date2 = "7th " & curMonth 
    Case Else 
     Date2 = "28th " & Format(Now - 7, "mmmm yyyy") 
End Select 

End Sub 
+0

Vielen Dank, das hat perfekt funktioniert! –