我正在尝试制作一个模板,用于在Outlook中进行传递。我希望它在主题行中说“日班”,如果它在0700和1900之间,则为“夜班”。怎么办呢。
到目前为止我所拥有的:
Sub MakeItem()
Dim objMail As MailItem
Set newItem = Application.CreateItemFromTemplate("C:\Passdown1.oft")
newItem.Subject = "D1D NXE Day Shift Passdown " & Format(Now, "dd-mmm-yy")
newItem.Display
Set newItem = Nothing
End Sub
答案 0 :(得分:1)
作为我的评论,这就是你做的......
Sub MakeItem()
Dim objMail As MailItem
Dim sShift As String ' Add this
Set newItem = Application.CreateItemFromTemplate("C:\Passdown1.oft")
' Check hours
Select Case Hour(Now)
Case 7 To 18 ' Day shift until 18:59:59
sShift = "Day"
Case Else
sShift = "Night"
End Select
' Setup Subject replacing the <SHIFT>
newItem.Subject = Replace("D1D NXE <SHIFT> Shift Passdown " & Format(Now, "dd-mmm-yy"), "<SHIFT>", sShift)
newItem.Display
Set newItem = Nothing
End Sub
答案 1 :(得分:1)
或者您可以在一行中执行此操作:
newItem.Subject = String.Format("D1D NXE {0} Shift Passdown {1}", If(Date.Now.Hour >= 7 AndAlso Date.Now.Hour < 19, "Day", "Night"), Format(Now, "dd-MMM-yy"))
答案 2 :(得分:0)
指定条件的任何条件,并指定条件为真时要排除的任何语句
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]
<强>条件强>
必需。表达。必须求值为True或False,或者为可隐式转换为Boolean的数据类型。
如果表达式是一个Nullable布尔变量,其值为Nothing,则该条件被视为表达式不为True,并且执行Else块。
,然后强>
单行语法中必需;多行语法中的可选项。
<强>语句强>
可选。 If ... Then后面的一个或多个语句,如果condition的计算结果为True,则执行。
<强> elseifcondition 强>
如果存在ElseIf则必需。表达。必须求值为True或False,或者为可隐式转换为Boolean的数据类型。
<强> elseifstatements 强>
可选。 ElseIf之后的一个或多个语句......然后,如果elseifcondition的计算结果为True,则执行该语句。
<强> elsestatements 强>
可选。如果没有先前条件或elseifcondition表达式求值为True,则执行一个或多个语句。
结束
终止If ... Then ... Else阻止。