0

我正在尝试制作一个模板来在 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
4

3 回答 3

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
于 2013-11-11T02:54:39.967 回答
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"))
于 2013-11-11T03:04:54.540 回答
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 的数据类型。

如果表达式是一个值为 Nothing 的 Nullable 布尔变量,则条件被视为表达式不为 True,并执行 Else 块。

然后

在单行语法中是必需的;在多行语法中是可选的。

陈述

选修的。If...Then 后面的一个或多个语句在条件评估为 True 时执行。

elseif 条件

如果存在 ElseIf,则为必需。表达。必须计算为 True 或 False,或计算为可隐式转换为 Boolean 的数据类型。

elseif 语句

选修的。如果 elseifcondition 评估为 True,则执行 ElseIf...Then 之后的一个或多个语句。

其他语句

选修的。如果没有先前的条件或 elseifcondition 表达式计算为 True,则执行一个或多个语句。

万一

终止 If...Then...Else 块。

于 2013-11-11T02:39:21.543 回答